您正在嘗試將高度巢狀的 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中文網其他相關文章!