为了账号安全,请及时绑定邮箱和手机立即绑定

Mongodb 的 Golang mgo 聚合

Mongodb 的 Golang mgo 聚合

Go
慕运维8079593 2021-08-23 16:53:35
任何人都知道我们在 mongodb shell 中为 golang mgo/bson 使用的聚合命令的等价物是什么?类似的东西:aggregate([{$match:{my_id:ObjectId("543d171c5b2c1242fe0019")}},{$sort:{my_id:1, dateInfo:1, name:1}},{$group:{_id:"$my_id", lastEntry:{$max: "$dateInfo"},nm:{$last:"$name"}}}])
查看完整描述

2 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

假设c是你的收藏:


pipe := c.Pipe([]bson.M{{"$match": bson.M{"name":"John"}}})

resp := []bson.M{}

err := pipe.All(&resp)

if err != nil {

  //handle error

}

fmt.Println(resp) // simple print proving it's working


查看完整回答
反对 回复 2021-08-23
?
动漫人物

TA贡献1815条经验 获得超10个赞

示例代码:

pipe := c.Pipe([]bson.M{bson.M{"$match": bson.M{"type": "stamp"}},

        bson.M{"$group": bson.M{"_id": "$userid",

            "count": bson.M{"$sum": "$noofsr"}}}})


resp := []bson.M{}

iter := pipe.Iter()

err = iter.All(&resp)

注意:

请注意,该行应与(,)如果你不打破(,),它会抛出错误消息,即使您的查询是正确的结束。


输出:

{

    "transactions": [

        {

            "_id": "three@four.com",

            "count": 10

        },

        {

            "_id": "one@two.com",

            "count": 12

        }

    ]

}


查看完整回答
反对 回复 2021-08-23
  • 2 回答
  • 0 关注
  • 206 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号