ホームページ  >  記事  >  バックエンド開発  >  MongoDB に Go 構造体を保存するときにネストされた構造を保存するにはどうすればよいですか?

MongoDB に Go 構造体を保存するときにネストされた構造を保存するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-04 20:23:02186ブラウズ

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

Mgo を使用したネストされた構造体の保存

高度にネストされた Go 構造体を MongoDB ドキュメントに保存しようとしています。ただし、構造体で json.Marshal または mgo.Collection.Upsert を使用すると、ネストされた構造はフラット化されます。

データベースにネストされた構造を保持するには、構造体の定義に進みます。このタグは、ネストされた構造体のフィールドを、あたかも外部構造体の直接フィールドであるかのように扱うように 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。