使用 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中文网其他相关文章!