MongoDB - 聚合阶段 $group 的使用
// 假设我们有一个名为 "sales" 的 MongoDB 集合,包含以下文档结构:
// {
// item: "abc",
// quantity: 2,
// amount: 20
// },
// {
// item: "jkl",
// quantity: 1,
// amount: 15
// },
// {
// item: "abc",
// quantity: 1,
// amount: 10
// },
// {
// item: "abc",
// quantity: 2,
// amount: 20
// },
// {
// item: "def",
// quantity: 1,
// amount: 10
// },
// {
// item: "def",
// quantity: 2,
// amount: 20
// },
// {
// item: "def",
// quantity: 1,
// amount: 10
// }
// 我们想要按 item 字段进行分组,并计算每个 item 的总销量(quantity 的总和)和总销售额(amount 的总和)。
db.sales.aggregate([
{
$group: {
_id: "$item", // 分组依据是 item 字段
totalQuantity: { $sum: "$quantity" }, // 计算每个分组的总销量
totalAmount: { $sum: "$amount" } // 计算每个分组的总销售额
}
}
]);
// 输出结果将会是每个 item 的总销量和总销售额,例如:
// { "_id" : "abc", "totalQuantity" : 4, "totalAmount" : 50 }
// { "_id" : "def", "totalQuantity" : 5, "totalAmount" : 60 }
// { "_id" : "jkl", "totalQuantity" : 1, "totalAmount" : 15 }
这段代码展示了如何使用 MongoDB 的聚合框架中的 $group
阶段来对数据进行分组,并计算每个分组的总销量和总销售额。这是数据分析和报告常用的一个操作。
评论已关闭