我正在使用pymongo版本2.7.2。
我只想通过主机名匹配名称计算出现次数。
我不想使用map / reduce。我想通过聚合函数来实现。
执行此查询:
"按主机名"进行名称匹配计数
cursor = self.coll.aggregate(
{ "$match": { "HOSTNAME": "XXYYX" }},
{ "$group": {
"_id": {
"Name": "$NAME"
},
"count": { "$sum": 1 }
}})
cursor = self.coll.aggregate(
{ "$match": { "HOSTNAME": "XXYYX" }},
{ "$group": {
"_id": {
"Name": "$NAME"
},
"count": { "$sum": 1 }
}})
我收到以下错误:
这个查询完全在mongodb上运行。但我不知道如何将它正确地翻译成Pymongo。line 46, in registerApps
"count": { "$sum": 1 }
TypeError: aggregate() takes 2 positional arguments but 3 were given
你可以帮我吗?
非常感谢!
答案 0 :(得分:2)
Aggregate将数组命令作为参数:
cursor = self.coll.aggregate(
[
{ "$match": { "HOSTNAME": "XXYYX" }},
{ "$group": {
"_id": {"Name": "$NAME"},
"count": { "$sum": 1 }
}
]
)
如docs
中所述