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

为什么 mongo-go-driver 聚合结果对象键返回为“Key”

为什么 mongo-go-driver 聚合结果对象键返回为“Key”

Go
慕森王 2023-06-26 17:17:17
我想使用聚合将一些数据与 mongo-go-driver 进行分组,但是 json 结果让我感到困惑,因为行键替换为“Key”,并且真正的键成为“Key”的值var result primitive.Apipeline := mongo.Pipeline{{{"$group", bson.D{{"_id", "$nis"}}}}}cursor, err := db.NilaiUH.Aggregate(context.TODO(), pipeline)cursor.All(context.Background(), &result)json.NewEncoder(w).Encode(&result)这是结果[  [    {      "Key": "_id",      "Value": 15100    }  ],  [    {      "Key": "_id",      "Value": 15101    }  ]]
查看完整描述

1 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

新版本的 MongoDB 驱动程序将空接口视为键和值的数组,而不是字符串和空接口之间的映射。我已使用以下代码纠正了该问题:


// register custom codec registry to handle empty interfaces

rb := bson.NewRegistryBuilder()

rb.RegisterTypeMapEntry(bsontype.EmbeddedDocument, reflect.TypeOf(bson.M{}))


client, err := mongo.NewClient(options.Client().ApplyURI(url).SetRegistry(rb.Build()))


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

添加回答

举报

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