首頁 >後端開發 >Golang >為什麼我的 Golang mgo 查詢會傳回空物件?

為什麼我的 Golang mgo 查詢會傳回空物件?

DDD
DDD原創
2024-12-27 22:21:11504瀏覽

Why Are My Golang mgo Queries Returning Empty Objects?

如何使用Golang 的Mgo 避免空物件

當使用Golang 的mgo 套件與MongoDB 互動時,了解正確的用法至關重要BSON 和JSON 標籤。如果不使用適當的標籤註釋,資料檢索可能會導致空物件。

提供的程式碼片段嘗試在 MongoDB 中查詢具有特定「使用者」欄位的記錄。但是,由於常見的疏忽,傳回的記錄為空:結構欄位未匯出。要解決此問題,請修改 users 結構體以匯出使用者和資料欄位:

type users struct {
    User string `bson:"user" json:"user"`
    Data string `bson:"data" json:"data"`
}

透過匯出結構體字段,您可以指示 mgo 套件在資料轉換和擷取期間使用這些欄位名稱。如果沒有此匯出,套件將忽略這些欄位。

此外,了解 BSON 和 JSON 標籤的作用也很重要。在 MongoDB 中,資料以 BSON(二進位 JSON)格式儲存。然而,Go 使用 JSON 來表示資料結構。 BSON 和 JSON 標籤可讓您指定 Go 欄位如何對應到對應的 BSON 對應項目。

在提供的程式碼中,User 和 Data 標籤指定 Go 結構體欄位應對應到「user」和分別是 BSON 中的「資料」欄位。透過使用這些標籤,您可以確保以正確的格式儲存和檢索資料。

遵循這些準則,您可以有效地避免檢索空對象,並確保使用 mgo 在 Go 和 MongoDB 之間正確處理資料包裹。

以上是為什麼我的 Golang mgo 查詢會傳回空物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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