我需要根据id或者email进行查找。输入可以是十六进制的objectId,也可以是一个合法的邮箱地址。
现在有一个简单的例子:
现在有一个简单的例子:
User.find({'$or': [{email: req.body.user}, {_id: req.body.user}]}, function(err, user){})
当通过电子邮件搜索时,由于电子邮件无法返回有效的objectId,因此会出现错误。
我该如何解决这个问题?我知道一个可能的方法是先检测输入是否为电子邮件,然后再进行查询,但是否有更好的方法呢?