如何在 MongoDB 中汇总总和以获得总数? [英] How to aggregate sum in MongoDB to get a total count?

查看:35
本文介绍了如何在 MongoDB 中汇总总和以获得总数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于具有字段 { wins: Number } 的某些集合,我如何使用 MongoDB 聚合框架 来获取集合中所有文档的总获胜次数?

For some collection with a field { wins: Number }, how could I use MongoDB Aggregation Framework to get the total number of wins across all documents in a collection?

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

If I have 3 documents with wins: 5, wins: 8, wins: 12 respectively, how could I use MongoDB Aggregation Framework to return the total number, i.e. total: 25.

推荐答案

Sum

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

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

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

In this case, if you want to get the sum of all of the wins, you need to refer to the field name using the $ syntax as $wins which just fetches the values of the wins field from the grouped documents and sums them together.

您也可以通过传入特定值来sum 其他值(就像您在评论中所做的那样).如果你有

You can sum other values as well by passing in a specific value (as you'd done in your comment). If you had

{ "$sum" : 1 },

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

that would actually be a count of all of the wins, rather than a total.

这篇关于如何在 MongoDB 中汇总总和以获得总数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆