mongodb - 如何在 MongoDB 中汇总总和以获得总计数?

对于带有字段 { wins: Number } 的某些集合,我如何使用 MongoDB 聚合框架 来获取集合中所有文档的获胜总数?

示例:

如果我有 3 个文档分别具有 wins: 5wins: 8wins: 12,我该如何使用 MongoDB 聚合框架返回总数,即 total: 25.

最佳答案

总和

使用 MongoDB 的聚合框架时,要获取分组字段的总和,您需要使用 $group$sum:

db.characters.aggregate([ { 
    $group: { 
        _id: null, 
        total: { 
            $sum: "$wins" 
        } 
    } 
} ] )

在这种情况下,如果要获取所有wins的总和,则需要使用$语法将字段名称引用为 $wins 它只是从分组的文档中获取 wins 字段的值并将它们汇总在一起。

计数

您也可以通过传入特定值来sum 其他值(正如您在评论中所做的那样)。如果你有

{ "$sum": 1 },

这实际上是所有 wins 的计数,而不是总数。

https://stackoverflow.com/questions/17044587/

相关文章:

mongodb - Mongoose:深人口(填充人口密集的领域)

mongodb - 大型项目的 NodeJS vs Play 框架

mongodb - 查询 MongoDB 的 IDE?

mongodb - meteor :如何备份我的 mongo 数据库

mongodb - 如何从 find 方法返回 Mongoose 结果?

python - 在 Meteor 运行时,如何从另一个客户端访问 Meteor 的 MongoDB

mongodb - 仅返回嵌套数组中匹配的子文档元素

arrays - MongoDB:如何更新数组中的单个子元素,由数组中的索引引用?

shell - 如何从 Mongo ObjectID 中提取创建日期

node.js - 创建后如何在 mongoose 中填充子文档?