如何在MongoDB中累计总和以获得总数?
对于一些有{ wins: Number }
field { wins: Number }
字段的集合,我怎样才能使用MongoDB Aggregation Framework来获取集合中所有文档的总数?
例:
如果我有3个文档, wins: 5
, wins: 8
, wins: 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
的计数,而不是总数。