2016-05-18 11 views

答えて

1

あなたはすなわち、特定の都市の値に基づいて、コレクション内のすべてのドキュメントをフィルタします$groupオペレータの前にパイプラインを作成$match演算子を使用して文書をフィルタ処理する必要があります。前の$groupオペレータのパイプラインで

、あなたはその後、蓄積された平均値を、前のパイプラインからグループに(_idフィールドによって示されるように)すべての文書をヌルキーを使用して取得することができます:

db.x.aggregate([ 
    { "$match": { "city": "Barcelona" } }, 
    { "$group": { "_id": null, "$avg": "$trips" } } 
]); 

(上記のように最適ではない)別のアプローチは、都市のキーによってグループに、コレクション内のすべての文書も、その後、その後フィルタリングします:

db.x.aggregate([ 
    { "$group": { "_id": "$city", "$avg": "$trips" } }, 
    { "$match": { "_id": "Barcelona" } } 
]); 
関連する問題