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.