Параметр $all в mongodb не работает со списком ObjectId

Я получаю список ObjectId, и я хочу получить все объекты в моей базе данных Монго, используя параметр $all

Я использую pymongo, и мой запрос выглядит так:

db.database.collection.find({ "_id" : { "$all" : [ObjectId('4ee371837c93dd33dc000003'),ObjectId('4eef9f647c93dd1a90000000')] } })

но количество курсоров, возвращаемое запросом, равно 0, но когда я делаю этот запрос:

db.database.collection.find_one({ "_id" : ObjectId('4ee371837c93dd33dc000003')})

Это возвращает мне хороший объект

Кто-нибудь знает, почему это не работает?

1 ответ

Решение

Этот запрос не имеет смысла. Вы просите уникальных и однозначных _id поле, чтобы иметь все два разных значения одновременно.

Я думаю ты хочешь $in:

db.database.collection.find({ "_id" : { 
   "$in" : 
     [ObjectId('4ee371837c93dd33dc000003'),
      ObjectId('4eef9f647c93dd1a90000000')] } })
Другие вопросы по тегам