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