mongodb aggregate 多个值求 sum 怎么破?

2017-11-23 12:28:56 +08:00
 SlipStupig

我的数据结构是这样的:

{
    "_id": "xxxxxx",
    "detail": {
        "product_name": "swords  big",
        "type": "weapon",
        "make_player": "震荡龙",
        "game_zone": 1
    }
}

我想统计detail中的数据的多个值的 总和 ,能输出成这样的效果:

{” game_zone “:1000,  ” type “:200}

怎么写语句可以实现呢?

3851 次点击
所在节点    Python
9 条回复
qiuyk
2017-11-23 14:36:04 +08:00
直接$match 再$group 不就可以了?
xlrtx
2017-11-23 15:23:52 +08:00
.aggregate([{$match:{}}, {$group:{_id:null, total:{$sum:"$detail.game_zone"}}}])
SlipStupig
2017-11-23 21:39:14 +08:00
@qiuyk $sum 求总数只能求一个值
fordoo
2017-11-24 09:33:24 +08:00
{$group: {_id: "$detail.type", sum: {$sum: "$detail.game_zone"}}} ?
SlipStupig
2017-11-24 09:46:02 +08:00
@fordoo 比如: type: 1 我要得到 sum,game_zone:2 的我要得到一个 sum
qiuyk
2017-11-24 14:51:26 +08:00
@SlipStupig 你这是听谁说的= = 几个值都可以的
.aggregate([{$match:{}}, {$group:{_id:null, type:{$sum:"$detail.type"}},game_zone:{$sum:"$detail.game_zone"}}}])
qiuyk
2017-11-24 14:53:27 +08:00
括号写错了 不过差不多就是这个意思了
wx8600
2017-11-25 22:13:45 +08:00
这不是在文档里面就有的吗……
SlipStupig
2017-11-25 22:27:45 +08:00
@wx8600 文档没写统计两个值啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/408843

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX