Em primeiro lugar, a diferença básica entre
findOne()
e find()
:-
findOne()
- se a consulta corresponder, o primeiro documento será retornado, caso contrário, nulo.
-
find()
- não importa o número de documentos correspondidos, um cursor é retornado, nunca nulo.
Então, quando colocado em uma condição if,
findOne()
pode converter para false quando não corresponde a nenhum documento. Como find()
retorna um objeto de cursor e nunca retorna null, será convertido em true quando colocado em uma condição if. find
e findOne()
retorne o seguinte para a coleção vazia: