Filtering Fields from MongoDB Documents with Mongo-Go-Driver
To filter specific fields from a MongoDB document using Mongodb-Go-Driver, the findopt.Projection option can be utilized. However, in your provided code, the issue arises due to the field _id within the fields struct being unexported (starting with a lowercase letter).
Revised Solution:
To resolve this, the field name should be exported (starting with an uppercase letter) and utilize struct tags to map it to the MongoDB _id field. The updated code:
type fields struct { ID int `bson:"_id"` }
Projection using Projection Option:
To perform a query with projection, use the options.FindOne().SetProjection(projection) method, where projection represents the desired fields to retrieve.
Updated Code:
projection := fields{ ID: 0, } result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Alternative Using bson.Document:
Alternatively, a bson.Document can be used as the projection:
projection := bson.NewDocument( bson.EC.Int32("_id", 0), ) result := staCon.collection.FindOne( nil, filter, options.FindOne().SetProjection(projection)).Decode(s)
Using these approaches, you can filter specific fields from MongoDB documents, suppressing unnecessary fields such as _id if desired.
The above is the detailed content of How to Filter Specific Fields from MongoDB Documents using the Mongo-Go-Driver?. For more information, please follow other related articles on the PHP Chinese website!