2012-04-08 4 views
0

So muss ich eine Suche per ID oder E-Mail zu tun. Die Eingabe kann eine objectId als Hex-String oder eine gültige E-Mail sein.Mungo finden Sie nach ID und E-Mail

jetzt ein einfaches

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

wirft einen Fehler, wenn per E-Mail suchen, da die E-Mail eine gültige objectId zurückzukehren ausfällt.

Wie komme ich darüber hinweg? Ich weiß, ein möglicher Weg besteht darin, zuerst festzustellen, ob die Eingabe eine E-Mail ist, und sie dann so abzufragen, aber eine bessere Methode?

Antwort

0

Eigentlich ist das die beste Methode. In Ihrer Anwendung erkennen Sie zuerst, welche Art von Eingabe Sie haben. Wenn es eine ObjectId - Abfrage von _id ist. Wenn es E-Mail ist - Abfrage von email.