mongodb 聚合查询 $sum

##mongodb 聚合查询 $sum

 1.字段的类型必须相同   比如
 ![数据字段类型](https://img-blog.csdnimg.cn/2020091815523675.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTE1Njk1Mw==,size_16,color_FFFFFF,t_70#pic_center)
 2.管道概念
 使用聚合统计的时候,mongodb会把每次查询的数据单独存到一个管道中,所以可以分别统计到不同的信息
 (1)统计每个游戏的得分量
 
 ![统计每个游戏的得分量](https://img-blog.csdnimg.cn/20200918163813416.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTE1Njk1Mw==,size_16,color_FFFFFF,t_70#pic_center)

(2)更进一步统计每一个游戏下面有多少人玩
db.getCollection("GameLog0").aggregate([{
    $match: {
        TimeStamp: {
            $lte: 1591332469,
            $gte: 1590221887
        }
    }
}, {
    $group: {
        _id: {
            ServerID: "$ServerID",
            UserID: "$UserID"
        },
        bestona: {
            $sum: "$BetonGold"
        }
    }
}, {
    $group: {
        _id: "$_id.ServerID",
        bestona1: {
            $sum: "$bestona"
        },
        userc: {
            $sum: 1
        }
    }
}])
![统计每个游戏下面多少人玩儿](https://img-blog.csdnimg.cn/20200918165834310.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MTE1Njk1Mw==,size_16,color_FFFFFF,t_70#pic_center)

运行结果:
mongodb 聚合查询 $sum_第1张图片

你可能感兴趣的:(学习,mongodb,数据库)