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.