No está bien documentado, pero cursor.each
proporciona un null
valor al segundo parámetro de su devolución de llamada para indicar que el cursor no tiene más documentos disponibles. Solo se menciona en el ejemplo de la documentación .
Entonces, en su caso, debería buscar user !== null
en su users.each
devolución de llamada.
Sin embargo, sería más eficiente que mongo hiciera la búsqueda por ti cambiando tu find
llamar a:
collection.findOne({email: email}, {}, function(err, user) {
if (user) {
// email was found case
...
}
...
}