by mango怎么group_在mongodb中用“group by”选择Max()

我已经创建了Mongo Collection,如下所示。

{ "_id" : ObjectId("4fb36bfd3d1c88bfa15103b1"), "name" : "bob", "value" : 5 }

{ "_id" : ObjectId("4fb36c033d1c88bfa15103b2"), "name" : "bob", "value" : 3 }

{ "_id" : ObjectId("4fb36c063d1c88bfa15103b3"), "name" : "bob", "value" : 7 }

{ "_id" : ObjectId("4fb36c0c3d1c88bfa15103b4"), "name" : "john", "value" : 2 }

{ "_id" : ObjectId("4fb36c103d1c88bfa15103b5"), "name" : "john", "value" : 4 }

{ "_id" : ObjectId("4fb36c143d1c88bfa15103b6"), "name" : "john", "value" : 8 }

{ "_id" : ObjectId("4fb36c163d1c88bfa15103b7"), "name" : "john", "value" : 6 }

然后通过使用以下代码,我将其按名称和max(value)分组,

db.table1.group(

{key: {name:true},

reduce: function(obj,prev) {

if (prev.maxValue < obj.value) {

prev.maxValue = obj.value;

}

},

initial: { maxValue: 0 }}

);

结果显示为

[

{

"name" : "bob",

"maxValue" : 7

},

{

"name" : "john",

"maxValue" : 8

}

]

聚合框架简单得多。您可以使用聚合框架通过以下代码获得相同的结果。

db.table1.aggregate(

{$group:{_id:"$name", "maxValue": {$max:"$value"}}}

);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值