node.js - 具有异步操作的 Mongoose 游标

标签 node.js mongodb asynchronous mongoose mongodb-query

我是 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/

相关文章:

javascript - 如何检查文档/文档快照中是否存在某个字段?

javascript - lodash 或下划线是否在 Node.js 中并行运行每个方法?

node.js - 安装 Node.js 后,“npm”不被识别为内部或外部命令、可操作程序或批处理文件 - Windows

python - 如何显示 pymongo.errors.OperationFailure 详细信息?

mongodb - MongoDB 聚合中的 $$ROOT 是什么以及它是如何工作的?

javascript - 仅在某些路由上使用 Express.JS 中间件

mongodb - 我正在研究 Morphia,但对 DBRef 感到困惑

c# - 何时使用 System.Threading.ThreadPool 以及何时使用众多自定义线程池之一?

c# - 捕获由 async void 方法抛出的异常

c# - 如何在不等待完成的情况下启动异步方法?