Поддерживает ли mongoengine поиск в статистическом методе?
Я в настоящее время использую версию mongodb v3.0
это мой код:
{'$lookup': {
'from': 'Matrix',
'localField': 'account_id',
'foreignField': 'account_id',
'as': 'Matrix'
}
}
У меня эта ошибка:
Приложение, вызывающее исключение: исключение: Нераспознанное имя этапа конвейера: '$lookup'
0 ответов
Запрос с использованием структуры агрегации с PyMongo. Для этого требуется два подключения к MongoDB (одно для PyMongo для выполнения запроса агрегации, а второе для обычного запроса или вставки или обновления через MongoEngine).
Но _get_collection() решает эту проблему.
В приведенном ниже примере мы используем два модельных плана и дополнения, и в обоих отношениях указано значение quote_id
collection = Планы._get_collection()
pipeline = [
{
"$lookup":
{
"from":"addons",
"localField":"plans.quote_id",
"foreignField":"addons.quote_id",
"as": "addons_docs"
}
},
{
"$match":{
"addons_docs":{
"$ne":[]
}
}
},
{
"$addFields":
{
"addons_docs":
{
"$arrayElemAt":["$addons_docs",0]
}
}
},
{
"$replaceRoot":
{
"newRoot":
{
"$mergeObjects":["$addons_docs","$$ROOT"]
}
}
},
{
"$project":
{
"addons_docs":0
}
},
{
"$sort":
{
"_id":-1
}
},
{
"$limit":100
}
]
cursor = collection.aggregate(pipeline)
try:
for doc in cursor:
print(doc)
finally:
cursor.close()