Iterando sobre un cursor mongodb en serie (esperando las devoluciones de llamada antes de pasar al siguiente documento)

Usando mongoskin, puedo hacer una consulta como esta, que devolverá un cursor:

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

      }
}

Sin embargo, me gustaría llamar a algunas funciones asíncronas para cada documento, y solo pasar al siguiente elemento en el cursor después de que esto haya devuelto la llamada (similar a la estructura de cada Serie en el módulo async.js). P.ej:

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

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

      }
}  

¿Cómo podría hacer esto?

Gracias

ACTUALIZAR:

No quiero usartoArray() ya que esta es una gran operación por lotes, y los resultados pueden no encajar en la memoria de una sola vez.

Respuestas a la pregunta(8)

Su respuesta a la pregunta