Golang mgo 查詢中的空物件
在提供的程式碼中,當使用col.Find(bson.M 查詢MongoDB 中的特定使用者時{"user": username}).One(&user),user結構體被初始化為空物件。出現這種情況是因為 users 結構體的欄位未匯出,這導致 mgo 套件忽略它們。
使用匯出欄位的解
要解決此問題,您需要匯出使用者結構體的欄位。預設情況下,從 MongoDB 存取欄位時使用欄位名稱。但是,您可以使用標籤來指定自訂欄位對應。
這是帶有匯出欄位和標籤的修改後的結構:
type users struct { User string `bson:"user" json:"user"` Data string `bson:"data" json:"data"` }
現在,users 結構的欄位已正確匯出,並且查詢將傳回預期結果。
關於 BSON 和 JSON 的附加說明標籤:
bson 和 json 標籤分別用於指定 Go 結構體欄位如何對應 MongoDB 文件和 JSON 資料。 bson 標籤指定 BSON 文件中的欄位名稱,json 標籤指定 JSON 資料中的欄位名稱。
如果不指定標籤,則預設使用結構體中的欄位名稱。但是,使用標籤可讓您自訂欄位名稱以與其他系統或約定相容。
以上是為什麼我的 Golang mgo 查詢傳回空用戶物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!