我想用聚合的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
}
]
]发布于 2019-06-25 19:40:50
新版本的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()))https://stackoverflow.com/questions/56751280
复制相似问题