相当于SELECT行的MongoDB .find()字段=值

以撒

非常感谢使用MongoDB和Node。如果请求正文中的电子邮件与数据库中的电子邮件匹配,我想从文档中返回两个字段。这是我现在所拥有的:

router.post('/login', async (req, res) => {
    //console.log(req.body);
    const user = User.collection.find({username: req.body.username}, {username: 1, password: 1});
    console.log(user);
    if(user == null) {
        return res.status(400).json({ message: 'Cannot find user with that username' });
    }
    try {
        if(await bcrypt.compare(req.body.password, user.password)) {
            res.status(201).json(user)
        } else {
            res.status(400).json({ authenticated: false })
        }
    } catch (err) {
        res.status(500).json({ message: err })
    }
});

我认为user.password是未定义的,因此它会触发catch调用并返回状态500。

我的输出console.log(user)返回一个游标对象,其中包含一堆数据。在光标对象中,有一个选项对象,它显示了我传递的选项{用户名:1​​,密码:1}。还有一个cmd对象,其查询字段的值为{username:'GivenUsername'}

在任何输出中都没有看到我要查询的数据。我究竟做错了什么?

y

collection.find()返回一个游标您可以使用其next()方法来获取单个文档(不要忘记检查hasNext()是否需要),也可以使用方法toArray()一次获取所有文档。

PS不会忘记您需要returnif/else/catch块中回应

更新:您应该像这样使用它:

const cursor = User.collection.find({username: req.body.username}, {username: 1, password: 1});
if(!(await cursor.hasNext())) {
  return res.status(400).json({ message: 'Cannot find user with that username' });
}
const user = await cursor.next();
try {
  if(await bcrypt.compare(req.body.password, user.password)) {
    return res.status(201).json(user)
  } else {
    return res.status(400).json({ authenticated: false })
  }
} catch (err) {
  return res.status(500).json({ message: err })
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

mongodb相当于SELECT字段AS`anothername`

来自分类Dev

在Linux上相当于$(find -X)

来自分类Dev

MongoDb find返回给定条件的字段值数组

来自分类Dev

获取键,“ this”的值:JavaScript的jQuery相当于什么?

来自分类Dev

相当于Python中“值错误”的C#

来自分类Dev

相当于Python中“值错误”的C#

来自分类Dev

相当于$ {this:-that}扩展和类似值的鱼

来自分类Dev

Kotlin / Java 相当于 Swift、Dictionary / HashMap 的 null 值

来自分类Dev

setuptools的`find_packages`相当于distutils吗?(Python)

来自分类Dev

setuptools的`find_packages`相当于distutils吗?(Python)

来自分类Dev

相当于在numpy的新行/列中添加一个值,其作用类似于R的data.frame

来自分类Dev

相当于R中的get()的python(=使用字符串来检索符号的值)

来自分类Dev

我如何做相当于在 Lua 中按值传递参数?

来自分类Dev

SELECT MAX字段值或零值

来自分类Dev

相当于在mongodb spring中喜欢

来自分类Dev

在MongoDB中相当于mysql的BETWEEN

来自分类Dev

相当于SELECT DISTINCT的LINQ

来自分类Dev

Cosmos 相当于 map/select

来自分类Dev

Mongodb:避免字段值重复

来自分类Dev

MongoDB聚合-项目字段值作为字段

来自分类Dev

选择字段=值错误的行

来自分类Dev

根据字段值选择行

来自分类Dev

用pythonic的方式(熊猫的本机函数)来统计案例中某个值的出现(相当于SPSS COUNT个)?

来自分类Dev

在System.Text.Json中,Newtonsoft.Json / Json.Net的JsonProperty字段相当于什么?

来自分类Dev

相当于DCMPLX?

来自分类Dev

相当于$ .on的Javascript

来自分类Dev

相当于 $@ 的 Windows

来自分类Dev

指定字段值上的Mongo Ruby驱动程序#find()

来自分类Dev

指定字段值上的Mongo Ruby驱动程序#find()

Related 相关文章

热门标签

归档