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

MongoDB统计各品牌不同RAM容量数量及总数量聚合问题咨询

你只需要对现有聚合逻辑做2处调整即可实现需求:

  • 第一步在第一个$project阶段保留每个RAM分组的计数cnt字段,用于后续统计品牌总设备数
  • 第二步在按品牌分组的$group阶段新增sum字段,累加同品牌下所有RAM分组的计数得到总设备数

修改后的完整聚合代码

db.b.aggregate([
  // 按品牌+RAM分组,统计单品牌对应RAM容量的设备数量
  {$group:{ _id:{ r:"$ram" ,b:"$brand"}, cnt:{$sum:1} }},
  // 保留cnt字段,用于后续求和
  {$project:{ a:[{k:"$_id.r" ,v:"$cnt"}] , brand:"$_id.b" , cnt: 1, _id:0}},
  {$project:{d:{$arrayToObject:"$a"} ,brand:1, cnt:1 }},
  // 新增sum字段,累加同品牌所有RAM分组的计数得到总设备数
  {$group:{ _id:"$brand", ram:{$push:"$d"}, sum: {$sum: "$cnt"} }},
  {$project:{_id:0,brand:"$_id" ,"options": { $mergeObjects: "$ram" }, sum: 1 }},
  {$replaceRoot: {  newRoot: { $mergeObjects: ["$$ROOT", "$options"] }}}, 
  {$project:{options:0}}
])

运行输出结果

{ "brand" : "6178524a5ff14e633aeff1ea", "4gb" : 1, "8gb" : 1, "sum" : 2 }
{ "brand" : "sony", "16gb" : 2, "8gb" : 1 , "sum" : 3}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 09:09:12