首頁  >  文章  >  後端開發  >  如何使用 mgo 儲存嵌套的 Go 結構,同時在 MongoDB 中維護其結構?

如何使用 mgo 儲存嵌套的 Go 結構,同時在 MongoDB 中維護其結構?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-04 18:21:02467瀏覽

How do I store nested Go structs with mgo while maintaining their structure in MongoDB?

使用 mgo 儲存巢狀結構

當嘗試使用 mgo 將巢狀 Go 結構儲存為 MongoDB 文件時,使用者可能會遇到扁平化結構的問題。雖然 json.Marshal 函數可以產生所需的平面結構,但在更新插入 MongoDB 時,它會將資料儲存為二進位。

為了在更新期間維護巢狀結構,mgo 提供了 bson:",inline" 欄位標籤。此標記內嵌嵌套結構,導致其欄位被視為外部結構的一部分。例如,考慮以下簡化的嵌套結構:

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

type Cube struct {
    Square
    Depth int
}</code>

透過將bson:",inline" 標籤新增至Square 字段,該結構定義如下:

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

當使用mgo更新插入MongoDB時,資料現在將具有所需的平面結構:

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

這種方法允許使用者在成功將嵌套結構儲存在 MongoDB 中的同時保持其 Go 程式碼的可讀性和結構。

以上是如何使用 mgo 儲存嵌套的 Go 結構,同時在 MongoDB 中維護其結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn