mongodb - Mongodb-go-adapter FindOne 吐出 { } 和 { 0}
问题描述
一般来说 FindOne fmt.print 结果 { }。我需要输出价值。
我正在使用文档中的几乎标准设置:https ://docs.mongodb.com/ecosystem/drivers/go/
我在创建查询时遇到问题,因为大多数示例都不同;我试图遵循这种模式:https ://github.com/ruanbekker/code-examples/blob/master/mongodb/golang/examples.go
参考对象:
_id:5d1a8829cf5042c071458db6
name:" !hello"
Value:" World %c end"
Counter:0
代码示例:
type userModel struct {
Uname string
Url string
}
var result userModel
filter := bson.D{{"name", " !hello"}}
db := Client.Database("Nothing").Collection("databaseC")
db.FindOne(context.Background(), filter).Decode(&result)
fmt.Println(result)
fmt.Println(result.Url)
// 输出 { 0} // 输出空
type userModel struct {
Name string
Value string
Counter int
}
var result userModel
findOneOptions := options.FindOne()
findOneOptions.SetProjection(bson.D{{"name", "!new"}})
filter := bson.D{{}}
db := Client.Database("Nothing").Collection("databaseC")
db.FindOne(context.TODO(), filter, findOneOptions).Decode(&result)
fmt.Println(result)
// 什么都不输出
// 具有简单结构的不同集合
type userModel struct {
Uname string
Url string
}
var result userModel
filter := bson.D{{"name", "object"}}
db := Client.Database("Nothing").Collection("Video")
db.FindOne(context.Background(), filter).Decode(&result)
fmt.Println(result)
fmt.Println(result.Url)
// 输出 { } // 输出空
解决方案
type userModel struct {
name string `bson:"name"`
Value string `bson:"Value"`
Counter int `bson:"Counter"`
}
var result userModel
filter := bson.M{"name": " !hello"}
db := Client.Database("Nothing").Collection("databaseC")
db.FindOne(context.Background(), filter).Decode(&result)
fmt.Println(result)
fmt.Println(result.Value)
输出实际值。谢谢@icza
推荐阅读
- spring-boot - Spring boot + tomcat部署+非法循环继承依赖问题
- amazon-web-services - DynamoDB:如何在 GSI 上查询按排序键排序的多个分区键
- php - 我正在使用 Laravel Passport 进行身份验证,那么在从 api 接收承载令牌后如何在我的应用程序中应用身份验证
- coq - 如何使用定义来证明某事?
- dart - 带有右边框的圆角卡片小部件颤动
- javascript - 在 Angular 7 中,变更检测周期被多次调用
- python - Python manage.py 在 Visual Studio Code 编辑器中不断出现错误
- javascript - 将完整的日期字符串(如“2019 年 3 月 23 日星期六”)转换为 Javascript Date()
- php - 如何像get方法一样获取base64
- r - 加载带有多个图的pdf时R冻结