【问题标题】:display data from mongodb to html page using gin-golang?使用 gin-golang 将数据从 mongodb 显示到 html 页面?
【发布时间】: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
  • 您检查过namePassword 的值吗?您的代码也不会打印任何内容,所以我们甚至不知道这是否是您正在使用的。请使用实际使用的代码和特定打印语句的输出值对其进行编辑。
  • 是的,我更新了我的原始代码。我只想获取相应的用户数据,而不是 logedUser@Marc 中的所有数据
  • 您能否打印namePassword 以检查您在发出请求时获得的数据是否正确?

标签: mongodb go go-gin


【解决方案1】:

据我了解,您正在寻找特定且独特的记录。如果是这样,我建议只使用单个结构logedUser := RegisterdUser{} 而不是切片logedUser :=[]RegisterdUser{} 和此方法https://godoc.org/gopkg.in/mgo.v2#Query.One,这样您将拥有err = db.Find(bson.M{"name": name,"password" :Password}).One(&logedUser)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-05
    • 2020-12-18
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-31
    • 2022-01-25
    相关资源
    最近更新 更多