У меня такой запрос:

       $and: [
        {
          userId: {
            $in: userIds
          }
        },
        {
          promptId: {
            $in: promptIds
          }
        }
      ],

Но я быстро понял, что это неверно, так как неправильный userId мог быть связан с неправильным promptId.

Вместо этого мне нужно сделать что-то вроде этого:

$or: [
  {
   userId: 'foo1',
   promptId: 'bar1'
  },

  {
   userId: 'foo2',
   promptId: 'bar2'
  },

  {
   userId: 'foo3',
   promptId: 'bar3'
  },
]

Это $ или запрос оптимален? Есть ли лучший способ написать это?

0
Alexander Mills 14 Дек 2017 в 01:13

1 ответ

Лучший ответ

Предполагая, что вы пытаетесь найти документ, содержащий userId: foo1 и promptId: bar1, вы можете использовать db.collection.find () следующим образом

db.collection.find({userId: 'foo1',promptId: 'bar1'})
1
Anirudh Bagri 14 Дек 2017 в 05:37