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

将 MongoDB $max 结果转换为 golang 数据

将 MongoDB $max 结果转换为 golang 数据

Go
子衿沉夜 2023-07-31 14:55:22
我尝试从我的 Go 代码中获取 MongoDB 集合的最大值。我应该使用什么类型来解码结果?当我使用bson.D{}asval2类型时,结果看起来像[{_id <nil>} {max 66} {cnt 14}].这是代码:    filter := []bson.M{{        "$group": bson.M{            "_id": nil,            "max": bson.M{"$max": "$hellid"},        }},    }    cursor, err := collection.Aggregate(ctx, filter)    for cursor.Next(ctx) {        val2 := ???        err := cursor.Decode(&val2)        fmt.Printf("cursor: %v, value: %v\n", cursor.Current, val2)    }}
查看完整描述

1 回答

?
动漫人物

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

正如您所介绍的那样,使用bson.D已经有效。问题可能是您无法“轻松”获得max和cnt值。


使用如下结构对结果文档进行建模:


type result struct {

    Max   int `bson:"max"`

    Count int `bson:"cnt"

}

虽然cnt不是由您提供的示例代码生成的。


进而:


var res result

err := cursor.Decode(&res)


查看完整回答
反对 回复 2023-07-31
  • 1 回答
  • 0 关注
  • 92 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信