Resposta para a pergunta 1:Sim, você está certo.
É porque a natureza assíncrona do Node.js.
E para evitar que o Node.js forneça algum mecanismo para isso, você pode usá-lo, caso contrário, você pode fazê-lo manualmente, definindo um sinalizador.
Resposta para a pergunta 2:
você pode usar
$in
em vez de findOne
, será fácil e rápido. por exemplo.
.find({ "fieldx": { "$in": arr } })
arr
:- Neste você precisa fornecer todo o array.