Параметр $ all в mongodb не работает со списком ObjectId - PullRequest
0 голосов
/ 02 апреля 2012

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

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

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

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

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

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

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

1 Ответ

7 голосов
/ 02 апреля 2012

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

Я думаю, что вы хотите $in:

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