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

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

Susan Sarandon
發布: 2024-12-16 14:46:15
原創
594 人瀏覽過

Why are my Golang mgo queries returning empty user objects?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板