Параметр $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')})

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

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


person kschaeffler    schedule 02.04.2012    source источник


Ответы (1)


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

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

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