【问题标题】:Find in MongoDB在 MongoDB 中查找
【发布时间】:2018-02-09 11:19:28
【问题描述】:

我正在尝试通过检查用户名和密码是否正确来执行登录操作,但问题是,如果我使用查找操作进行检查,它只会返回我的 ID,我希望它返回一个实例的整个字段(如果匹配)它应该返回我该特定用户前的所有详细信息:用户名、电子邮件、密码、DOB 所有详细信息。但我的查询只返回 id。查询是

  db.users.find({"email":"cool1nn@gmail12.com"},{"pasword":"1345"})      

如果我通过 Nodejs 执行,它会单独返回 ID 和密码

  userSchema.find({"email":req.body.email},{"password":req.body.pwd},function(err,item) {

    if(err) throw err;
    console.log("item " + item);
})

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    find() 的第一个参数是查询,第二个参数是投影。

    您正在使用 userSchema.find(query, projection) 而不是 userSchema.find(query)

    你想要的

    userSchema.find({ email: "cool1nn@gmail12.com", pasword: "1345" })
    

    此外,由于您正在寻找 ONE 项目,请使用 findOne() 而不是 find()

    userSchema.findOne({ email: "cool1nn@gmail12.com", pasword: "1345" })
    

    【讨论】:

    • 感谢 Mikey 一个一般性的问题,我听说它是​​用户登录检查的正确方法,比如使用 PassportJS 进行验证
    • @kannan 真的是两个不同的东西。您的查询只会找到用户——仅此而已。 Passport.js 用于身份验证(包括查找用户)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    相关资源
    最近更新 更多