猫鼬findOne与“要么或”查询

驯鹿代码

我有一个用Mongoose查询的Mongo用户数据库。我想执行findOne以确定用户是否已经存在。我希望它首先搜索用户是否已经存在电子邮件,如果不存在,则应搜索用户是否存在电话。这是否必须在2个单独的查询中完成还是可以合并为一个?

User.findOne({ email: req.body.email }).exec(function(err, user){

  if (user) //user already exists with email
  else //no users with that email but we haven't checked phone number yet!

});
安德鲁·杜奈(Andrew Dunai)

为什么不只使用$or运算符?

User.findOne({$or: [
    {email: req.body.email},
    {phone: req.body.phone}
]}).exec(function(err, user){
    if (user) {} //user already exists with email AND/OR phone.
    else {} //no users with that email NOR phone exist.
});

这是伪SQL等效项:

SELECT * FROM users WHERE email = '%1' OR phone = '%2'

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章