首页 > 解决方案 > 如果通过 Mongo 驱动程序运行,如何确定 mongo 聚合是否完成

问题描述

假设我正在使用 mongo 的 node.js 驱动程序(版本 3.2),并且我有以下代码:

async function runAggregation(db) {
  const cursor = db.collection('test1')
    .aggregate([
      // ...
      {
        $out: 'test2',
      },
    ]);
  await cursor.toArray();
}

由于管道的最后阶段是$out,因此cursor.toArray()承诺最终会解决,[]因此它不是很有用。我想知道是否可以保证当这个promise被解决时,聚合将完成。

基本实验表明情况确实如此,但我在文档中找不到任何支持这一假设的陈述。

这里已经提出了一个类似的问题:

查看长时间运行的 mongodb 聚合作业的进度

但它只针对 mongo shell,所以上下文有点不同。

标签: node.jsmongodb

解决方案


推荐阅读