我是 mongo 新手,现在淹没在大量文档中。我想要的只是使用 mongoose 游标与游标内的数据操作异步工作。它应该等待播放下一次迭代,直到操作完成。 我在 a 中读到我们可以通过
-
QueryCursor#eachAsync(fn, [options], [options.parallel], [callback])
-
If fn returns a promise, will wait for the promise to resolve
由于我是 mongo 新手,我不知道如何创建 promise 并稍后解决它。
var cursor = Users.find({ "is_verified" : false }).cursor();
cursor.eachAsync(function (doc) {
//create promise here
async.series({
one: function(callback){
callback(null,1);
},
two: function(callback){
callback(null,2);
},
three: function(callback){
callback(null,3);
},
four: function(callback){
//resolve promise here
if() callback(null,4)
},
},function(err,result){})
}).then(()=>console.log('FINISHED'));
最佳答案
我会在数组中调用你的函数,如下所示: [这是半伪代码]
for(parameter in parameters) {
users.find({"parameter":parameter}, function( err, data) {
if (err) return handleError(err);
functionToFeedTemplate(data);
functionToSendMail(data);
}
}
关于node.js - 具有异步操作的 Mongoose 游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47689312/