使用mgo 儲存巢狀結構
在Go 和MongoDB 中處理巢狀結構時,開發人員經常面臨維護所需結構的挑戰儲存。
將 Go 結構轉換為 MongoDB 文件時會出現問題。簡單的嵌套結構可以被展平以防止二進位存儲,但展平更複雜的結構可能會損害程式碼的可讀性。
一種解決方案是利用 mgo 套件中的內聯字段標記。內聯標記指示 mgo 將嵌入結構視為包含結構的一部分,從而保留嵌套層次結構。
例如,考慮以下程式碼片段:
<code class="go">type Square struct { Length int Width int } type Cube struct { Square `bson:",inline"` Depth int }</code>
使用將內聯標記應用於Square,嵌入的結構將在轉換為MongoDB 文件期間被展平,從而導致:
<code class="json">{ "Length": 2, "Width": 3, "Depth": 4 }</code>
這種方法允許開發人員維護巢狀結構,同時確保資料以所需的格式儲存在MongoDB。如果沒有內嵌標籤,嵌套的 Square 結構將作為單獨的欄位儲存在 Cube 文件中。
以上是如何在 MongoDB 中儲存嵌套結構,同時在 Go 中保留其結構?的詳細內容。更多資訊請關注PHP中文網其他相關文章!