【发布时间】:2020-09-26 01:51:58
【问题描述】:
根据 mongo-driver https://godoc.org/go.mongodb.org/mongo-driver/bson 中的文档 将 bson 解组为 interface{} 会将值默认为 D
- 解组时,interface{} 类型的字段将遵循上面列出的 D/M 类型映射。 BSON 文件 解组到 interface{} 字段将被解组为 D。
如果我将一个对象存储在 db 中:
"data": {
"property1": "value1",
"property2": "value2",
}
当我用“”检索此数据时
var result interface{}
err = collection.FindOne(ctx, filter).Decode(&result)
变成:
"data": [
{"Key": "property1", "Value": "value1"},
{"Key": "property2", "Value": "value2"}
]
与文档相匹配,类型 D 是一段键值
我的问题是,有没有办法改变这种行为,以便将数据解组到 M 中?
我的应用不知道数据的实际结构。它只是将 json 作为输入并存储在 db 中,因此我必须在 unmarhsal 时使用 interface{} 作为类型。如果它作为地图存储在数据库中,它应该以相同的方式检索数据。
【问题讨论】: