首页 > 后端开发 > Golang > 正文

如何使用 mgo 在 MongoDB 中存储嵌套结构并保留扁平结构?

Barbara Streisand
发布: 2024-11-07 00:53:02
原创
410 人浏览过

How to store nested structs in MongoDB with mgo and retain a flattened structure?

使用 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!