我正在尝试在Python项目中进行以下汇总:
pipeline = [
{
'$group': {
'date': { '$max': "$date" },
'_id': {
'interface': "$interface",
'message': "$message",
'server': "$server"
},
'record_count': {
'$sum': '1'
}
}
}
]
errors = EntryError.objects.aggregate(pipeline)
但是执行aggregate
函数时,它给了我以下错误:
pymongo.errors.OperationFailure: Each element of the 'pipeline' array must be an object
但是在Robo3T和使用mongo shell时,相同的管道代码也可以工作。
我在做什么错了?
答案 0 :(得分:0)
我弄清楚我做错了。
解决所有问题的代码就是这个:
pipeline = {
"$group": {
"date": {"$max": "$date"},
"_id": {
"interface": "$interface",
"message": "$message",
"server": "$server"
},
"record_count": {
"$sum": 1
}
}
}
errors = EntryError.objects.filter(
date__gte=start_date,
date__lte=end_date
).aggregate(pipeline)
将“管道”作为字典而不是列表。