MongoDB聚合:分组统计$group的用法详解
在MongoDB中,$group
是一种聚合操作符,用于将集合中的文档按指定的标准进行分组,并可以对分组后的数据进行各种操作,如计数、求和、平均值等。
下面是$group
的一个基本用法示例:
假设有一个名为sales
的集合,其中包含以下文档:
{ "_id": 1, "item": "abc", "price": 10, "quantity": 2 }
{ "_id": 2, "item": "jkl", "price": 20, "quantity": 1 }
{ "_id": 3, "item": "abc", "price": 10, "quantity": 1 }
{ "_id": 4, "item": "xyz", "price": 5, "quantity": 10 }
如果我们想要按照item
字段来分组,并计算每个item
的总销量,可以使用以下聚合操作:
db.sales.aggregate([
{
$group: {
_id: "$item", // 分组的字段
totalQuantity: { $sum: "$quantity" }, // 计算每个组的总销量
numberOfDocs: { $sum: 1 } // 计算每个组的文档数量
}
}
]);
这将输出:
[
{ "_id": "abc", "totalQuantity": 3, "numberOfDocs": 2 },
{ "_id": "jkl", "totalQuantity": 1, "numberOfDocs": 1 },
{ "_id": "xyz", "totalQuantity": 10, "numberOfDocs": 1 }
]
在这个例子中,$group
操作符按item
字段进行了分组,并使用$sum
操作符来计算每个分组的总quantity
。此外,使用$sum: 1
计算了每个分组中的文档数量。
评论已关闭