2017-07-19 5 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

ありがとうございました! –

関連する問題