2012-04-08 94 views
0

所以我需要做一個通過身份證或電子郵件發現。輸入可以是一個objectId作爲十六進制字符串或有效的電子郵件。貓鼬找到身份證和電子郵件

現在簡單

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

通過電子郵件進行搜索時,由於郵件未能返回一個有效的ObjectId拋出一個錯誤。

我該如何克服這個問題?我知道一種可能的方法是首先檢測輸入是否爲電子郵件,然後像這樣查詢,但有什麼更好的方法?

回答

0

其實,這是最好的方法。在你的應用程序中,首先檢測你有什麼樣的輸入。如果它是ObjectId - 通過_id查詢。如果是電子郵件 - 通過email查詢。

相關問題