如何在MongoDB中累计总和以获得总数?

对于一些有{ wins: Number } field { wins: Number }字段的集合,我怎样才能使用MongoDB Aggregation Framework来获取集合中所有文档的总数?

例:

如果我有3个文档, wins: 5wins: 8wins: 12 ,那么我怎样才能使用MongoDB Aggregation Framework返回总数,即total: 25

为了在使用MongoDB的聚合框架时获得分组字段的总和,您需要使用$group$sum

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

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

计数

你也可以通过传递一个特定的值(如你在评论中所做的)来sum其他值。 如果你有

{ "$sum" : 1 }

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