You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用MongoDB查询计算各分支交易总额、交易数及金额占比

MongoDB按区域分组统计查询实现

需求说明

按orderarea字段分组统计各分支的订单总金额、交易总笔数,同时计算该分支总金额占全局总金额(固定为22000)的百分比。

实现查询语句

db.collection.aggregate([
  // 拆分orders数组为单条订单记录
  {
    $unwind: "$orders"
  },
  // 按分支区域分组统计
  {
    $group: {
      _id: "$orderarea",
      totalAmount: { $sum: "$orders.amount" },
      countoftransaction: { $sum: 1 }
    }
  },
  // 格式化输出字段,计算百分比
  {
    $project: {
      _id: 0,
      // 分支名称作为键,总金额作为值,MongoDB 3.6及以上版本支持该动态字段写法
      [$_id]: "$totalAmount",
      countoftransaction: 1,
      amountpercentage: {
        $concat: [
          { $toString: { $round: [ { $multiply: [ { $divide: [ "$totalAmount", 22000 ] }, 100 ] }, 2 ] } },
          "%"
        ]
      }
    }
  }
])

语句说明

  • $unwind操作:将每条文档中嵌套的orders数组拆分为独立的单订单文档,避免嵌套结构导致统计出错
  • $group操作:以orderarea作为分组主键,用$sum累加所有订单的amount得到单分支总金额,同时计数得到该分支总交易笔数
  • $project操作:自定义输出格式,通过数学运算得到占比后拼接百分号,最终输出和需求一致的结构
  • 若使用的MongoDB版本低于3.6不支持动态字段名,可直接保留_id字段作为分支名称字段即可。

内容的提问来源于stack exchange,提问作者Jayven Javier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:27:02