首页 文章

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

提问于
浏览
51

对于某个带有 { wins: Number } 字段的集合,我如何使用MongoDB Aggregation Framework获取集合中所有文档的总胜数?

示例:

如果我分别有 wins: 5wins: 8 ,_1353439的3个文件,我怎样才能使用MongoDB Aggregation Framework来返回总数,即 total: 25 .

1 回答

  • 113

    总和

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

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

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

    伯爵

    通过传递特定值(您在评论中所做的),您也可以 sum 其他值 . 如果你有

    { "$sum" : 1 }

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

相关问题