2017-07-19 59 views
0

我已经写了下面的代码,它正确地列出了我的地址集合的月份数与计数,但这些是总数,我需要有效地添加条件,只返回结果“type = green”。我无法计算出只有当它符合这些标准时才算数。如何使用Pymongo按月查询MongoDB和组结果?

result = db.address.aggregate([{"$group":{"_id": { "$month": "$date" }, 
         "count":{"$sum":1} } } ]) 

list_of_months = ["nothing", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"] 

result_sorted = sorted(result, key=lambda x: x['_id'], reverse=False) 
for res in result_sorted: 
    print(list_of_months[res['_id']], ": ", res['count']) 

回答

1

使用$match

result = db.address.aggregate([{"$match": {"type": "green"}}, 
           {"$group": {"_id": {"$month": "$date"}, 
              "count": {"$sum": 1}}}]) 
+0

嗨 - 我只是尝试这样做,它失败了。我认为你在类型和绿色之间做了一个拼写错误,而不是冒号。你能否更新,我会标记为正确的?感谢您的帮助。 –

+0

谢谢,更新! –