所以我需要通过 id 或电子邮件进行查找。输入可以是作为十六进制字符串的 objectId 或有效的电子邮件。
现在一个简单的
User.find({'$or': [{email: req.body.user}, {_id: req.body.user}]}, function(err, user){})
通过电子邮件搜索时抛出错误,因为电子邮件无法返回有效的 objectId。
我该如何克服呢?我知道一种可能的方法是首先检测输入是否是电子邮件,然后像这样查询它,但是有更好的方法吗?