首頁 > 後端開發 > Golang > 主體

在 MongoDB 中儲存 Go 結構時如何保留巢狀結構?

Linda Hamilton
發布: 2024-11-04 20:23:02
原創
170 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!