gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 21:09:34 24 4
gpt4 key购买 nike

该代码在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中实现这一目标?

最佳答案

我无法评论您的问题,因为我是这里的新贡献者,我现在在我的项目中使用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,确保在模型中。人员具有这样的数据
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 camelCase
opt.SetProjection(bson.M{"name": 1})

关于mongodb - 如何在go mongo-driver库中使用Find()。Select()。One(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63146476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com