我有一个包含type、totalA和totalB字段的文档集合

我想使用聚合框架,以便按类型分组——并将totalA和totalB的总和加在一起.

我最后一次try (不起作用)是:

'$group' : { 
  '_id' : '$type', 
  'totalA' : { '$sum' : '$totalA' },
  'totalB' : { '$sum' : '$totalB' },
  'totalSum' : { '$sum' : '$totalA', '$sum' : '$totalB' },
}  }

totalSum只包含一个字段的和,而不是组合值.

推荐答案

我找到了一个解决方案:

只需使用$project将这两个字段添加到输出中.

{ "$project" : {
      'totalA' : '$totalA',
      'totalB' : '$totalB',
      'totalSum' : { '$add' : [ '$totalA', '$totalB' ] },
     }

Mongodb相关问答推荐

在数组对象 Mongodb 中仅 Select 需要的数组

MongoDB - 将属性添加到数组中的对象(如果不存在)

MongoDB 聚合 groupBy 日期并计算子文档

判断对象数组中的值是否存在golang

Mongo:查找具有 0 个关联文档的文档,成本更低

Mongoose - $project 嵌套的对象数组到数组的根级别

如何将交易列表变成 token 数量的对象?

在golang中的mongodb中的集合列表中打印集合

使用新字段插入数据或使用 updateOne mongodb 有条件地更新

如何在 2 个应用程序之间共享mongoose模型?

如果 mongoDB 服务器正在运行,如何从驱动程序判断

使用模拟 MongoDB 服务器进行单元测试

无法将 $match 运算符用于带有 ObjectId 的 mongodb/mongoose 聚合

使用 MongoDB 进行嵌套分组

MongoDB 日志(log)文件和 oplog 有何不同?

查询 Mongoid/rails 3 中的嵌入对象(Lower than、Min 运算符和排序)

如何从mongoose中的对象 ID 获取创建日期?

MongoDb - 利用多 CPU 服务器进行写入繁重的应用程序

与 mongoose/node.js 共享数据库连接参数的最佳方式

全局初始化失败:BadValue Invalid or no user locale set.请确保正确设置 LANG 和/或 LC_* 环境变量