如何在 go mongo-driver 库中使用 Find().Select().One()

此代码在 go mgo 库结果界面中运行良好{}


err = getCollection.Find(bson.M{}).Select(bson.M{"_id": 1}).One(&result)

但我想使用 go mongo-driver 库执行此操作,我在下面的代码中尝试过,但它不像上面的那样工作


err = getCollection.FindOne(ctx, bson.M{}, options.FindOne().SetProjection(bson.M{"_id": 1})).Decode(&result)

我的test收集数据是


example{

"_id":ObjectId(),

"Name":"qwert"

}

有人建议我如何在 mongo-driver 中实现这一目标?


慕标5832272
浏览 183回答 1
1回答

DIEA

我无法评论你的问题,因为我是这里的新贡献者,我现在在我的项目中使用 mongo-driver,我试图只获取投影只显示一些字段,你能具体说明第二个过滤的参数吗?var (   opt options.FindOneOptions   modelStruct model.Person)filter := bson.M{"email": "hello@test.com"}opt.SetProjection(bson.M{"name": 1})err := collection.findOne(context.Background(), filter, opt).Decode(&modelStruct)如果这不起作用,那么你应该限制 struct ,确保你的 model.Person 有这样的数据type Person struct {  Name   string `json:"name" bson:"name"`  Gender string `json:"gender" bson:"gender"`}或者您可以制作自己的模型来限制字段:var personLimitOnlyGetName struct { Name   string `json:"name" bson:"name"`}// please look carefully in your collection field for camelCaseopt.SetProjection(bson.M{"name": 1})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go