MST

星途 面试题库

面试题:MongoDB $sum累加器函数在分组聚合中的复杂运用

有一个集合sales,文档结构为{product_id: String, region: String, quantity: Number, price: Number}。要求按region分组,计算每个区域内所有产品的销售总额(销售总额 = quantity * price),请使用$sum累加器函数实现该需求,并写出完整的聚合管道代码,同时说明聚合操作的步骤及每个阶段的作用。
24.3万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试
  1. 聚合管道代码
db.sales.aggregate([
    {
        $group: {
            _id: "$region",
            totalSales: {
                $sum: {
                    $multiply: ["$quantity", "$price"]
                }
            }
        }
    }
]);
  1. 聚合操作步骤及每个阶段作用
    • $group阶段
      • 作用:按region字段对文档进行分组。
      • _id字段:指定分组依据,这里使用region字段,_id的值为每个不同的区域。
      • totalSales字段:使用$sum累加器函数计算每个区域内所有产品的销售总额。$sum的参数是通过$multiply操作符将quantityprice相乘得到的每个产品的销售额,然后$sum将这些销售额累加起来,得到每个区域的销售总额。