使用 Mgo 在 MongoDB 中存储嵌套结构
Go 中的嵌套结构在转换到 MongoDB 文档时可能会带来挑战。当使用 json.Marshal 并写入标准输出时,嵌套结构会被展平。但是,当使用 mgo.Upsert 时,会保留嵌套结构。
要在 MongoDB 中保留扁平结构,请为嵌套结构使用 bson:",inline" 标签。此标签指示嵌套结构体的字段应被视为外部结构体的一部分。
例如,考虑以下代码:
<code class="go">type Square struct { Length int Width int } type Cube struct { Square `bson:",inline"` Depth int }</code>
这里,Square 结构体是使用 bson:",inline" 标签嵌入到 Cube 结构中。当使用 mgo.Upsert 与此结构时,生成的文档将具有以下格式:
{ "Length":2, "Width":3, "Depth":4 }
这种内联标记方法允许您在 MongoDB 中维护所需的扁平结构,而无需修改原始结构定义或诉诸于手动压平技术。
以上是如何使用 mgo 在 MongoDB 中存储嵌套结构并保留扁平结构?的详细内容。更多信息请关注PHP中文网其他相关文章!