对于带有字段 { wins: Number }
的某些集合,我如何使用 MongoDB 聚合框架 来获取集合中所有文档的获胜总数?
如果我有 3 个文档分别具有 wins: 5
、wins: 8
、wins: 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/