【发布时间】:2018-07-18 18:05:20
【问题描述】:
我正在尝试检查 MongoDB 是否有具有特定用户名和密码的数据。但现在我得到的是所有数据而不是指定的数据。以下是我的代码:
r.POST("/login", func(c *gin.Context) {
logedUser :=[]RegisterdUser{}
name := c.PostForm("userName")
Password := c.PostForm("userPassword")
fmt.Println("inside checking sectionnnn",name,Password)
session, err := mgo.Dial("localhost:27017")
if err != nil {
panic(err)
}
s := session.Clone()
db := s.DB("testing").C("testData")
//err = db.Find(nil).All(&logedUser)
err = db.Find(bson.M{"name": name,"password" :Password}).All(&logedUser)
//err = db.Find({"Name": name},{"Password" :Password}).All(&logedUser)
if err != nil {
log.Fatal(err)
log.Println("inside error")
}
//if logedUser !=nil{
//fmt.Println("logged")
//c.Redirect(301, "/loggedPage")
//}else{
//c.Redirect(301, "/loginError")
//}
fmt.Println("data fetched",logedUser)
c.Next()
defer session.Close()
})
我的数据库结构是:
{ "_id" : ObjectId("5a7ac6150e04b2e9c18c15af"), "name" : "aswathy", "password" : "aswathyashok" }
{ "_id" : ObjectId("5a7ad3ef0e04b2e9c18c15d1"), "name" : "anupama", "password" : "anu" }
{ "_id" : ObjectId("5a7bf0dcd90e2ccd0bd9785b"), "name" : "reema", "password" : "reemaaa" }
{ "_id" : ObjectId("5a7bf1f6d90e2ccd0bd97895"), "name" : "sreeda", "password" : "sreeda" }
内部检查部分的结果是aswathy aswathyshok。
获取数据的结果是
[{aswathy aswathyashok} {anupama anu} {reema reemaaa} {sreeda sreeda} {deena deena} {farsu farsu} {beena bea} {jeena jeena}]
【问题讨论】:
-
“所有数据”是什么意思?您没有显示结果
logedUser或您期望得到的结果。 -
所有数据表示该集合中的所有数据。logedUser 结果为 [{aswathy aswathyashok} {anupama anu} {reema reemaaa} {sreeda sreeda} {deena deena} {farsu farsu} {beena bea} {jeena jeena}]@Marc
-
您检查过
name和Password的值吗?您的代码也不会打印任何内容,所以我们甚至不知道这是否是您正在使用的。请使用实际使用的代码和特定打印语句的输出值对其进行编辑。 -
是的,我更新了我的原始代码。我只想获取相应的用户数据,而不是 logedUser@Marc 中的所有数据
-
您能否打印
name和Password以检查您在发出请求时获得的数据是否正确?