来自aggregate()和find()的MongoDB驱动程序用于NodeJS

时间:2017-10-10 23:07:12

标签: javascript node.js mongodb promise

我总是看到NodeJS的MongoDB驱动程序(> 2.0)支持promises。但我找到的唯一例子是connect()和findOne()函数。虽然它适用于那些,我可以得到承诺,它不与aggregate()或find()。我得到那个是因为他们可能会返回游标,但是因为有承诺支持,这些承诺在哪里?必须有办法与他们合作。一个链接,一个例子或简单的解释将是如此受欢迎:)

谢谢你, 约迪。

2 个答案:

答案 0 :(得分:8)

将结果从find()aggregate()链接到.toArray()。当前mongodb nodejs驱动程序的toArray文档为here

答案 1 :(得分:0)

您可以做的是编写自己的自定义承诺函数,例如:

Query.prototype.find = function (callback) {
  return new Promise((resolve, reject) => {
    this.model.find(this.query).skip(this.skip).limit(this.limit).sort(this.sort).exec((err, results) => {
        if (err) {
            return reject(err);
        }

        return resolve({ find: results });
    });
  });
}