mgo を使用したネストされた構造体の保存
Go および MongoDB でネストされた構造体を扱うとき、開発者は、開発中に目的の構造を維持するという課題に直面することがよくあります。 storage.
この問題は、Go 構造体を MongoDB ドキュメントに変換するときに発生します。単純なネストされた構造体をフラット化してバイナリ ストレージを防ぐことができますが、より複雑な構造をフラット化するとコードの可読性が損なわれる可能性があります。
解決策の 1 つは、mgo パッケージのインライン フィールド タグを利用することです。 inline タグは、埋め込まれた構造体を、入れ子の階層を維持しながら、それを含む構造体の一部であるかのように扱うように mgo に指示します。
たとえば、次のコード スニペットを考えてみましょう。
<code class="go">type Square struct { Length int Width int } type Cube struct { Square `bson:",inline"` Depth int }</code>
inline タグが Square に適用されると、埋め込まれた構造体は MongoDB ドキュメントへの変換中にフラット化され、次の結果が得られます。
<code class="json">{ "Length": 2, "Width": 3, "Depth": 4 }</code>
このアプローチにより、開発者は、データが目的の形式で確実に保存されるようにしながら、ネストされた構造体を維持できます。モンゴDB。インライン タグがないと、ネストされた Square 構造体は Cube ドキュメント内の別のフィールドとして保存されます。
以上がGo で構造を維持しながら、ネストされた構造体を MongoDB に保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。