首頁 >後端開發 >Golang >如何使用 Mongo-Go-Driver 從 MongoDB 文件中過濾特定欄位?

如何使用 Mongo-Go-Driver 從 MongoDB 文件中過濾特定欄位?

Susan Sarandon
Susan Sarandon原創
2024-12-19 03:55:12898瀏覽

How to Filter Specific Fields from MongoDB Documents using the Mongo-Go-Driver?

使用Mongo-Go-Driver 過濾MongoDB 文件中的欄位

要使用Mongodb-Go-Driver 過濾MongoDB 文檔中的特定欄位,可以使用findopt.Projection 選項。但是,在您提供的程式碼中,由於 fields 結構中的欄位 _id 未匯出(以小寫字母開頭)而出現問題。

修訂的解決方案:

要解決此問題,應匯出欄位名稱(以大寫字母開頭)並利用結構標籤將其對應到 MongoDB _id 欄位。更新後的程式碼:

type fields struct {
    ID int `bson:"_id"`
}

使用Projection Option 進行投影:

要使用投影執行查詢,請使用options.FindOne().SetProjection(projection)方法,其中投影表示要檢索的所需欄位。

已更新程式碼:

projection := fields{
    ID: 0,
}
result := staCon.collection.FindOne(
    nil, filter, options.FindOne().SetProjection(projection)).Decode(s)

取代使用bson.Document:

或者,bson.Document:

projection := bson.NewDocument(
    bson.EC.Int32("_id", 0),
)
result := staCon.collection.FindOne(
    nil, filter, options.FindOne().SetProjection(projection)).Decode(s)

或者,bson.Document 可以用作投影:

使用這些方法,您可以從MongoDB 文件中過濾特定字段,抑制不必要的字段如果需要,例如 _id。

以上是如何使用 Mongo-Go-Driver 從 MongoDB 文件中過濾特定欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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