如何在新的 go-mongo-driver 中运行 Find.().One()

目前我们正在将 mgo( globalsign )驱动程序迁移到 go mongo-driver

我想要一些替代方法Find.().One()


我尝试了类似下面的方法,但没有帮助


    login = model.LoginModel{}

    err = mongo.Collection.Find(bson.M{"name": MAXCOUNT}).Decode(&loginCount) 

返回我并返回以下错误,


 error was: cannot transform type []interface {} to a BSON Document: WriteArray can only write a Array while positioned on a Element or Value but is positioned on a TopLevel

不确定新的 Decode 方法是否允许结构值?


我的结构如下所示



type LoginModel struct {

Username    string  `json:"username"`

Password    string  `json:"password"`


}


我也需要有相应的 bson 值吗?


试图在 go-mongo-driver 中运行 Find.().One()


凤凰求蛊
浏览 59回答 1
1回答

幕布斯6054654

Collection.Find()旨在查询多个元素。它返回一个mongo.Cursor,您可以使用它来迭代结果或使用Cursor.All().如果您需要单个结果,请Collection.FindOne()改用。例如:ctx := context.Background() // Use / setup your contextc := ... // acquire mongo.Collectionvar login model.LoginModelerr = c.FindOne(ctx, bson.M{"name": MAXCOUNT}).Decode(&login)// check error
打开App,查看更多内容
随时随地看视频慕课网APP