em nodejs, como parar um loop FOR até que a chamada mongodb retorne

Por favor, olhe o trecho de código abaixo. Eu tenho uma matriz de objetos JSON chamada 'stuObjList'. Eu quero fazer um loop através da matriz para encontrar objetos JSON específicos com um determinado conjunto de sinalizadores e, em seguida, fazer uma chamada de banco de dados para recuperar mais dados.

Claro, o loop FOR não espera a chamada do banco de dados retornar e chega ao final com j == length. E quando a chamada do banco de dados retornar, o índice 'j' estará além do índice da matriz. Eu entendo como o node.js funciona e esse é o comportamento esperado.

Minha pergunta é, qual é o trabalho por aqui. Como posso conseguir o que estou tentando alcançar? Obrigado, --su

...............
...............
...............
else
{
  console.log("stuObjList.length: " + stuObjList.length);
  var j = 0;
  for(j = 0; j < stuObjList.length; j++)
  {
    if(stuObjList[j]['honor_student'] != null)
    {     
      db.collection("students").findOne({'_id' : stuObjList[j]['_id'];}, function(err, origStuObj)
      {
        var marker = stuObjList[j]['_id'];
        var major = stuObjList[j]['major'];
      });
    }

    if(j == stuObjList.length)
    {
      process.nextTick(function()
      {
        callback(stuObjList);
      });
    }
  }
}
});

questionAnswers(4)

yourAnswerToTheQuestion