使用mongo-go-driver 投影MongoDB 文件中的欄位排除
投影MongoDB 文件中的欄位可以選擇性地擷取特定欄位,排除那些被認為不必要的。這可以透過最大限度地減少資料傳輸來增強效能並減少網路流量。
mongo-go-driver 透過其 findopt.Projection 選項提供靈活的場投影機制。但是,必須遵守某些實作細節以確保成功投影。
在提供的程式碼範例中:
<br>opts =append(opts, findopt.Projection(fields{<pre class="brush:php;toolbar:false">_id: 0,
}))
問題是由於在fields結構中使用未匯出的欄位名稱 (_id) 引起的。其他套件(包括 mongo-go-driver)無法存取未匯出的欄位。要解決這個問題:
匯出欄位名稱:使用以大寫字母開頭的欄位名稱(例如 ID)並使用結構標籤將它們對應到 MongoDB 欄位:
type fields struct { ID int `bson:"_id"` }
利用bson.Document: 或者,您可以建構一個bson.Document 來投影:
projection := bson.NewDocument( bson.EC.Int32("_id", 0), )
現在,您可以使用投影執行查詢:
projection := fields{ ID: 0, } result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
確保使用設定正確的投影options.FindOne().SetProjection().
透過遵守這些準則,您可以使用 mongo-go-driver 有效地投影欄位並最佳化 MongoDB 文件檢索操作。
以上是如何使用 mongo-go-driver 正確投影 MongoDB 中的欄位排除?的詳細內容。更多資訊請關注PHP中文網其他相關文章!