【问题标题】:Mongoose search for a value in two parametersMongoose 在两个参数中搜索一个值
【发布时间】:2019-01-27 21:30:16
【问题描述】:

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

【问题讨论】:

标签: javascript node.js database mongodb mongoose


【解决方案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
    })
})

【讨论】:

  • 非常感谢@Xixis
猜你喜欢
  • 2017-05-14
  • 2013-09-23
  • 2016-07-20
  • 1970-01-01
  • 2019-03-03
  • 2013-12-14
  • 1970-01-01
  • 2015-12-29
  • 2019-08-02
相关资源
最近更新 更多