【问题标题】:Use Async Library with MongoDB using Nodejs使用 Nodejs 将异步库与 MongoDB 一起使用
【发布时间】:2019-10-21 16:06:09
【问题描述】:

当我调用 API 时,我想用 MongoDB 更新 2 个单独的集合。官方的做法是使用事务,但由于目前这是一个原型,我将只使用 2 个单独的函数调用来更新每个集合。

这是我正在做的事情:

 async.waterfall([
    function(callback) {
        callback(null);
    }, function(callback) {
       connectToDatabase(MONGODB_URI)
      .then(db => updateDocument1(arguments))
      .then(result => {
        callback(null);
      });
    }
    , function(callback) {
       connectToDatabase(MONGODB_URI)
      .then(db => updateDocument2(arguments))
      .then(result => {
        callback(null);
      });
    , function(err, result) {
       callback(null, null)
    }
  ])

但不知何故,它没有执行 updateDocument2。此外,updateDocument1 在过程中间停止,因此没有更新任何文档。 你知道为什么吗?还有谁知道更好的方法?

【问题讨论】:

    标签: node.js mongodb asynchronous


    【解决方案1】:

    异步并行:并行执行函数,不依赖于 其他功能

    async series : 串行执行函数(一个接一个)

    异步瀑布:首先执行函数,然后传递 第一个函数作为下一个函数的输入

    现在在你的情况下:如果更新两个不依赖于彼此的集合,你可以使用异步并行

    【讨论】:

    • 即使我做并行,也没有执行,因为函数过早退出。我正在使用 AWS Lambda
    • 添加控制台日志并确保您从数据库中获取结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2013-05-24
    • 2020-07-18
    相关资源
    最近更新 更多