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

Usando o mongoskin, eu posso fazer uma consulta como essa, que retornará um cursor:

myCollection.find({}, function(err, resultCursor) {
      resultCursor.each(function(err, result) {

      }
}

No entanto, eu gostaria de chamar algumas funções assíncronas para cada documento, e só passar para o próximo item no cursor depois que isso foi chamado de volta (semelhante à estrutura eachSeries no módulo async.js). Por exemplo:

myCollection.find({}, function(err, resultCursor) {
      resultCursor.each(function(err, result) {

            externalAsyncFunction(result, function(err) {
               //externalAsyncFunction completed - now want to move to next doc
            });

      }
}  

Como eu pude fazer isso?

obrigado

ATUALIZAR:

Eu não quero usartoArray() como esta é uma operação em lote grande, e os resultados podem não caber na memória de uma só vez.