MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Iterando sobre um cursor mongodb serialmente (aguardando retornos de chamada antes de passar para o próximo documento)


Se você não quiser carregar todos os resultados na memória usando toArray, poderá iterar usando o cursor com algo como o seguinte.
myCollection.find({}, function(err, resultCursor) {
  function processItem(err, item) {
    if(item === null) {
      return; // All done!
    }

    externalAsyncFunction(item, function(err) {
      resultCursor.nextObject(processItem);
    });

  }

  resultCursor.nextObject(processItem);
}