Mongodb 为什么mongo go驱动程序聚合结果对象键返回为;“关键”;

Mongodb 为什么mongo go驱动程序聚合结果对象键返回为;“关键”;,mongodb,go,mongo-go,Mongodb,Go,Mongo Go,我想使用aggregate使用mongo-go驱动程序对一些数据进行分组,但json结果让我感到困惑,因为行键替换为“key”,而实键变成了“key”的值 var结果原语.A 管道:=mongo.pipeline{{{{{group],bson.D{{{{u id',“$nis}} 游标,err:=db.NilaiUH.Aggregate(context.TODO(),管道) cursor.All(context.Background(),&result) json.NewEncoder(w.E

我想使用aggregate使用mongo-go驱动程序对一些数据进行分组,但json结果让我感到困惑,因为行键替换为“key”,而实键变成了“key”的值

var结果原语.A
管道:=mongo.pipeline{{{{{group],bson.D{{{{u id',“$nis}}
游标,err:=db.NilaiUH.Aggregate(context.TODO(),管道)
cursor.All(context.Background(),&result)
json.NewEncoder(w.Encode)(&result)
结果如下

[
  [
    {
      "Key": "_id",
      "Value": 15100
    }
  ],
  [
    {
      "Key": "_id",
      "Value": 15101
    }
  ]
]

新版本的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()))