python pymongo匹配不起作用

时间:2014-11-24 14:27:58

标签: mongodb pymongo

我正在使用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 } }}) 我收到以下错误:

line 46, in registerApps
    "count": { "$sum": 1 }
TypeError: aggregate() takes 2 positional arguments but 3 were given
这个查询完全在mongodb上运行。但我不知道如何将它正确地翻译成Pymongo。

你可以帮我吗?

非常感谢!

1 个答案:

答案 0 :(得分:2)

Aggregate将数组命令作为参数:

cursor = self.coll.aggregate(
          [
            { "$match": { "HOSTNAME": "XXYYX" }},
            { "$group": {
                "_id": {"Name": "$NAME"},
                "count": { "$sum": 1 }
            }
          ]
)

docs

中所述