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