首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么mongo-go-driver聚合结果对象键返回为"Key“

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

Stack Overflow用户
提问于 2019-06-25 17:53:23
回答 1查看 440关注 0票数 1

我想用聚合的mongo-go-driver对一些数据进行分组,但是json结果把我搞糊涂了,因为行键被替换成了" key“,而真正的键变成了”key“的值。

代码语言:javascript
复制
var result primitive.A
pipeline := 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)

结果如下所示

代码语言:javascript
复制
[
  [
    {
      "Key": "_id",
      "Value": 15100
    }
  ],
  [
    {
      "Key": "_id",
      "Value": 15101
    }
  ]
]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-25 19:40:50

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

代码语言:javascript
复制
// 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()))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56751280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档