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

我想使用聚合将一些数据与 mongo-go-driver 进行分组,但是 json 结果让我感到困惑,因为行键替换为“Key”,并且真正的键成为“Key”的值


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)

这是结果


[

  [

    {

      "Key": "_id",

      "Value": 15100

    }

  ],

  [

    {

      "Key": "_id",

      "Value": 15101

    }

  ]

]


慕森王
浏览 95回答 1
1回答

明月笑刀无情

新版本的 MongoDB 驱动程序将空接口视为键和值的数组,而不是字符串和空接口之间的映射。我已使用以下代码纠正了该问题:// register custom codec registry to handle empty interfacesrb := bson.NewRegistryBuilder()rb.RegisterTypeMapEntry(bsontype.EmbeddedDocument, reflect.TypeOf(bson.M{}))client, err := mongo.NewClient(options.Client().ApplyURI(url).SetRegistry(rb.Build()))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go