MongoDB:Collection.Find() 是否支持承诺

Eli*_*mar 2 mongodb node.js

我试图改造一个旧的 Nodejs Web 服务,用链式承诺替换回调函数。在查询 mongodb 时,我们使用以下语法遍历结果集。

collection.find(filter).toArray(function(err, items) {
          if (err) {
            throw(err);
          } else {
            console.log(items);

          }       
Run Code Online (Sandbox Code Playgroud)

如果我尝试.toArray()用 a替换该部分,.then()则会出现以下错误“col.find(...).then is not a function”。

如果我替换.find().findOne().then(),则代码完美运行。

任何帮助表示赞赏。

Joh*_*yHK 8

find返回 a Cursor,但游标的toArray方法返回一个承诺。所以你可以这样做:

collection.find(filter).toArray().then(...)
Run Code Online (Sandbox Code Playgroud)