在MongoDB中,可以使用$match
和$group
操作符来统计两个条件。以下是一个示例:
假设我们有一个存储用户数据的集合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
表示满足条件的文档数量。