猫鼬在两个参数中搜索值

时间:2018-08-21 16:24:21

标签: javascript node.js database mongodb mongoose

我想知道是否可以使用猫鼬(node.js)在两个参数中搜索值。 例如,假设我有一个字符串,我想在用户集合中查找与该字符串具有相同电子邮件地址或相同用户名的用户。那些第一个猫​​鼬将在一个字段中搜索值,如果未成功完成搜索,它将在第二个字段(在本例中为电子邮件)中搜索相同的值。 预先感谢大家

1 个答案:

答案 0 :(得分:1)

您可以尝试使用以下代码使用用户名或电子邮件搜索用户模型。找不到用户返回404状态,如果遇到错误则返回500,如果成功返回用户对象则返回默认200。

User.findOne({
    $or: [
        {username: req.body.fieldName}, 
        {email: req.body.fieldName}
    ]
}).then((user)=>{
    if(user==null) return res.status(404).json({
        success: false,
        message: 'No user found'
    })
    return res.json({
        success: true,
        user: user
    })
}).catch((err)=>{
    return res.status(500).json({
        success: false,
        message: 'Encountered an error finding user',
        error: err
    })
})