首页  >  文章  >  后端开发  >  在 MongoDB 中存储 Go 结构时如何保留嵌套结构?

在 MongoDB 中存储 Go 结构时如何保留嵌套结构?

Linda Hamilton
Linda Hamilton原创
2024-11-04 20:23:02231浏览

How to Preserve Nested Structures When Storing Go Structs in MongoDB?

使用 Mgo 存储嵌套结构

您正在尝试将高度嵌套的 Go 结构保存到 MongoDB 文档。但是,当您将 json.Marshal 或 mgo.Collection.Upsert 与结构一起使用时,嵌套结构会被展平。

要保留数据库中的嵌套结构,请在您的代码中使用 bson:",inline" 字段标记去结构体定义。此标签指示 Mgo 将嵌套结构的字段视为外部结构的直接字段。

例如,考虑您提到的简化示例:

<code class="go">type Square struct {
    Length int 
    Width int
}

type Cube struct {
    Square `bson:",inline"`
    Depth int
}</code>

在这种情况下, Cube 结构将使用以下 JSON 结构存储在数据库中:

<code class="json">{
    "Length": 2,
    "Width": 3,
    "Depth": 4
}</code>

这与您所需的输出匹配并保留嵌套结构。

以上是在 MongoDB 中存储 Go 结构时如何保留嵌套结构?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn