猿问

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

我尝试从我的 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)

    }

}


子衿沉夜
浏览 97回答 1
1回答

动漫人物

正如您所介绍的那样,使用bson.D已经有效。问题可能是您无法“轻松”获得max和cnt值。使用如下结构对结果文档进行建模:type result struct {&nbsp; &nbsp; Max&nbsp; &nbsp;int `bson:"max"`&nbsp; &nbsp; Count int `bson:"cnt"}虽然cnt不是由您提供的示例代码生成的。进而:var res resulterr := cursor.Decode(&res)
随时随地看视频慕课网APP

相关分类

Go
我要回答