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

MongoDB聚合多字段求和:如何将披萨字段值汇总为pizzas字段

MongoDB披萨订单字段求和生成目标文档结构

当然可以实现,以下是两种实用的处理方式:

1. 查询时计算总和(不修改原文档)

如果只需在查询时返回包含pizzas总和的结果,不改动数据库里的原文档,用聚合管道即可实现:

db.orders.aggregate([
  {
    $project: {
      _id: 1,
      date: 1,
      pizzas: {
        $add: ["$margherita", "$hawaii", "$diavolo", "$quattro_formaggi"]
      }
    }
  }
])

通过$project阶段保留_id和date字段,同时用$add操作符将指定披萨字段的数值相加,生成pizzas总和字段。

2. 永久修改文档结构

如果需要让数据库中的文档直接变成目标结构,可使用聚合管道式更新(MongoDB 4.2及以上版本支持):

db.orders.updateMany(
  {}, // 匹配所有订单文档,如需过滤特定订单可修改此条件
  [
    {
      $set: {
        pizzas: {
          $add: ["$margherita", "$hawaii", "$diavolo", "$quattro_formaggi"]
        }
      }
    },
    {
      $unset: ["margherita", "hawaii", "diavolo", "quattro_formaggi"] // 可选:移除原披萨数量字段
    }
  ]
)
  • $set步骤负责计算并添加pizzas总和字段;
  • $unset步骤为可选操作,执行后会移除原来的各个披萨数量字段,让文档完全符合你期望的结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:32:07