我有一个Mongo文档,里面包含嵌套的文档列表(如下所示)。我正在尝试运行聚合操作,以仅返回列表中匹配的对象并搭配完整文档。
示例集合数据
{
"make": "Toyota",
"color": "blue",
"tires": [{
"make": "Mishlen",
"size": 185
}, {
"make": "Mishlen",
"size": 210
}]
}
我使用以下查询成功在MongoDB中实现了它:
db.cars.aggregate(
[
{
$match: {$and: [{"tires.size": {$gt: 200}}]}
},
{
$addFields: {
"tires": {
$filter: {
input: '$tires',
as: 'tires',
cond: {$gt: ['$$tires.size', 200]}
}
}
}
},
{
$limit: 100
},
{
$skip: 0
}
])
我正在尝试在mongoengine中运行相同的聚合操作,但每次都返回一个空列表。
pipeline = [
{
"$match": {"$and": [{"tires.size": {"$gt": 200}}]}
},
{
"$addFields": {
"tires": {
"$filter": {
"input": "$tires",
"as": "tires",
"cond": {"$and": [{"$gt": ["$$tires.size", 200]}]}
}
}
}
}
]
self.obj_type.objects.aggregate(*pipeline)
我做错了什么?
更新
我的问题比我想象中简单,我在Python中传递的是字符串而不是整数。感谢大家的帮助。