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

MongoDB如何合并多个同结构文档并对同名字段求和生成单文档

MongoDB 集合全字段求和合并实现方案

场景说明

现有集合存储3条结构一致的文档:

{ "num" : 10, "count" : 1 }
{ "num" : 20, "count" : 2 }
{ "num" : 30, "count" : 3 }

需要对所有文档的同名字段分别求和,合并输出单条结果,预期结果如下:

{ "num" : 60, "count" : 6 }

具体实现

直接调用MongoDB的聚合管道,通过$group阶段完成全量文档的字段累加即可,执行命令如下:

// 替换成你实际的集合名称
db.test_collection.aggregate([
  {
    $group: {
      _id: null,
      num: { $sum: "$num" },
      count: { $sum: "$count" }
    }
  },
  {
    $project: {
      _id: 0
    }
  }
])

参数说明

  • $group阶段的_id: null代表不对文档做拆分,把集合内所有文档归为同一组做聚合计算;每个字段对应配置$sum累加器,传入$字段名格式的字段引用,就会自动遍历组内所有文档累加对应字段的值。
  • 后续的$project阶段是可选配置,作用是去掉聚合默认返回的_id字段,让输出结构和预期结果完全对齐。

如果集合字段是动态变化、无法提前枚举的,可以先调用db.集合名.findOne()拉取单条样本文档,遍历提取所有数值类字段名,动态拼接$group的求和配置即可,核心逻辑和固定字段场景完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:27:13