对于某个带有 { wins: Number } 字段的集合,我如何使用MongoDB Aggregation Framework获取集合中所有文档的总胜数?
{ wins: Number }
如果我分别有 wins: 5 , wins: 8 ,_1353439的3个文件,我怎样才能使用MongoDB Aggregation Framework来返回总数,即 total: 25 .
wins: 5
wins: 8
total: 25
要在使用MongoDB的聚合框架时获取分组字段的总和,您需要使用 $group 和 $sum :
$group
$sum
db.characters.aggregate([ { $group: { _id: null, total: { $sum: "$wins" } } } ] )
在这种情况下,如果要获取所有 wins 的总和,则需要使用 $ 语法引用字段名称 $wins ,它只从分组文档中获取 wins 字段的值并将它们相加在一起 .
wins
$
$wins
通过传递特定值(您在评论中所做的),您也可以 sum 其他值 . 如果你有
sum
{ "$sum" : 1 } ,
{ "$sum" : 1 }
这实际上是所有 wins 的计数,而不是总数 .
1 回答
总和
要在使用MongoDB的聚合框架时获取分组字段的总和,您需要使用
$group
和$sum
:在这种情况下,如果要获取所有
wins
的总和,则需要使用$
语法引用字段名称$wins
,它只从分组文档中获取wins
字段的值并将它们相加在一起 .伯爵
通过传递特定值(您在评论中所做的),您也可以
sum
其他值 . 如果你有{ "$sum" : 1 }
,这实际上是所有
wins
的计数,而不是总数 .