通过id和电子邮件找到mongoose

时间:2012-04-08 10:28:42

标签: mongodb mongoose

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

现在很简单

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

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

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

1 个答案:

答案 0 :(得分:0)

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