Я пытаюсь получить набор документов из моей коллекции со следующими условиями:
- поле: img_status не существует
- поле: изображения должны существовать
Затем сгруппируйте эти документы (уникальные / разные) по одному полю. Когда я выполняю запрос в MongoDB, кажется, что он возвращает правильные значения:
db.getCollection('products').aggregate([
{ $match: { images: { $exists: true, $ne: null } } },
{ $match: { img_status: { $exists: false } } },
{ $group : { _id:"$vendor_link", "uuid" : {$first: "$uuid"}, "images": { $first: "$images"} } }
])
Но в PyMongo я всегда получаю противоположное, например: img_status exist = true
:
pipeline = [
{
"$match":
{
"images" :
{ "$ne" : "null", "$exists": "true", }
}
},
{
"$match":
{
"img_status":
{"$exists": "false"}
}
},
{
"$group":
{
"_id" : "$vendor_link",
"images" : {"$first": "$images"},
"uuid" : {"$first": "$uuid"},
"source" : {"$first": "$source"}
}},
]
pprint(list(self.collection.aggregate(pipeline)))
Что я делаю не так?