2014-11-24 74 views
1

我正在使用pymongo 2.7.2版。python pymongo匹配不起作用

我只想通過名稱與主機名稱匹配來計算出現次數。

我不想使用map/reduce。我想通過聚合函數來完成它。

執行這個查詢:

「按名稱匹配計數由主機名」

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。

你能幫我解答嗎?

非常感謝!

回答

2

骨料作爲其參數命令的陣列

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

docs

描述