如何摆脱在mongodb中插入嵌套结构时添加的附加键

如何摆脱在mongodb中插入嵌套结构时添加的附加键,mongodb,go,struct,nested,tags,Mongodb,Go,Struct,Nested,Tags,假设这是我的结构定义 类型partialContent结构{ key字符串`json:“key”bson“key”` 值字符串`json:“值”bson:“值”` } 类型内容结构{ id字符串`json:“id”bson:“\u id,省略为空”` 部分内容 } 在MongoDB中存储内容时,它存储为 { “_id”:ObjectID, “部分内容”:{ “密钥”:“…”, “值”:“…” } } 但是JSON解组返回 { “_id”:ObjectID, “密钥”:“…”, “值”:“…”

假设这是我的结构定义

类型partialContent结构{
key字符串`json:“key”bson“key”`
值字符串`json:“值”bson:“值”`
}
类型内容结构{
id字符串`json:“id”bson:“\u id,省略为空”`
部分内容
}
在MongoDB中存储内容时,它存储为

{
“_id”:ObjectID,
“部分内容”:{
“密钥”:“…”,
“值”:“…”
}
}
但是JSON解组返回

{
“_id”:ObjectID,
“密钥”:“…”,
“值”:“…”
}

如何去除MongoDB中的附加键partialcontent

首先,您需要导出结构字段,否则驱动程序将跳过这些字段

如果您不想在MongoDB中嵌入文档,请使用
,inline
bson标记选项:

type PartialContent struct {
    Key   string `json:"key" bson"key"`
    Value string `json:"value" bson:"value"`
}

type Content struct {
    ID             string `json:"id" bson:"_id,omitempty"`
    PartialContent `bson:",inline"`
}
插入此值:

v := Content{
    ID: "abc",
    PartialContent: PartialContent{
        Key:   "k1",
        Value: "v1",
    },
}
将在MongoDB中生成此文档:

{ "_id" : "abc", "key" : "k1", "value" : "v1" }

谢谢,这就解决了!很抱歉,我忘了在问题中加上这个。