如何在 MongoDB 总和得到一个总计数?

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

例如:

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

123497 次浏览

总之

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

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

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

数数

您也可以通过传递一个特定的值(正如您在注释中所做的那样)来 sum其他值。如果你有的话

{ "$sum" : 1 },

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