2

所以我需要通过 id 或电子邮件进行查找。输入可以是作为十六进制字符串的 objectId 或有效的电子邮件。

现在一个简单的

User.find({'$or': [{email: req.body.user}, {_id: req.body.user}]}, function(err, user){})

通过电子邮件搜索时抛出错误,因为电子邮件无法返回有效的 objectId。

我该如何克服呢?我知道一种可能的方法是首先检测输入是否是电子邮件,然后像这样查询它,但是有更好的方法吗?

4

1 回答 1

0

实际上,这是最好的方法。在您的应用程序中首先检测您有什么样的输入。如果是ObjectId- 查询_id。如果是电子邮件 - 通过 查询email

于 2012-04-08T10:30:44.130 回答