MongoDBで2つの条件を統計する方法は何ですか?
MongoDBでは、$matchと$group演算子を使用して2つの条件を集計することができます。以下に例を示します。
ユーザーデータを保存するためのコレクションである「users」があると仮定します。各ユーザードキュメントには、年齢を表す「age」フィールドと性別を表す「gender」フィールドがあります。
20歳から30歳の女性ユーザーの数を集計するためには、次の結合パイプライン操作を使用できます。
db.users.aggregate([
{
$match: {
age: { $gte: 20, $lte: 30 },
gender: "female"
}
},
{
$group: {
_id: null,
count: { $sum: 1 }
}
}
])
上記の例では、まず$match操作子を使用して、条件を満たすユーザードキュメント(年齢が20歳から30歳で女性)を選択し、それから$group操作子を使用して、マッチしたドキュメントを新しいドキュメントにグループ化して、条件を満たすドキュメントの数を計算します。
結果は以下のようになります:
{ "_id" : null, "count" : 3 }
_idがnullの場合、すべての一致するドキュメントが同じグループに分類され、countは条件を満たすドキュメントの数を示します。