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: