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.