使用 mongo-go-driver 在查询结果中包含或排除字段
mongo-go-driver 提供了一种过滤字段的机制查询结果,允许您根据需要包含或排除特定字段。但是,在尝试使用 findopt.Projection 选项时,如果字段名称未正确导出,您可能会遇到问题。
要解决此问题,请确保您的字段名称以大写字母开头,表示导出的字段。此外,您可以使用结构标签将 MongoDB 字段名称映射到 Go 结构字段,如下例所示:
type fields struct { ID int16 `bson:"_id"` }
正确导出字段名称后,您可以使用投影执行查询如下所示:
var opts []*find.FindOptions projection := fields{ ID: 0, } opts = append(opts, find.Projection(projection)) s := bson.NewDocument() filter := bson.NewDocument(bson.EC.ObjectID("_id", starterId)) staCon.Collection.FindOne(nil, filter, opts...).Decode(s)
或者,您可以使用 bson.M 映射来指定投影:
options := find.FindOptions{} options.Projection = bson.M{"_id": 0} result := staCon.Collection.FindOne(nil, filter, &options).Decode(s)
通过使用适当的字段导出和投影,您可以有效地过滤 MongoDB 查询结果中的字段,根据您的特定需求定制响应。
以上是如何使用 mongo-go-driver 在 MongoDB 查询结果中包含或排除字段?的详细内容。更多信息请关注PHP中文网其他相关文章!