Последовательная итерация по курсору mongodb (ожидание обратных вызовов перед переходом к следующему документу)
Используя mongoskin, я могу сделать такой запрос, который вернет курсор:
myCollection.find({}, function(err, resultCursor) {
resultCursor.each(function(err, result) {
}
}
Однако я'Я хотел бы вызывать некоторые асинхронные функции для каждого документа и переходить к следующему элементу курсора только после его обратного вызова (аналогично структуре eachSeries в модуле async.js). Например:
myCollection.find({}, function(err, resultCursor) {
resultCursor.each(function(err, result) {
externalAsyncFunction(result, function(err) {
//externalAsyncFunction completed - now want to move to next doc
});
}
}
Как я мог это сделать?
Спасибо
ОБНОВИТЬ:
Я нене хочут использоватьtoArray()
поскольку это большая пакетная операция, и результаты могут не помещаться в памяти за один раз.