繁体   English   中英

MongoDB:Collection.Find()是否支持promise

[英]MongoDB : does Collection.Find() support promise

我正在尝试改造旧的Node.js Web服务,以用链式Promise代替回调函数。 查询mongodb时,我们使用以下语法遍历结果集。

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

          }       

如果我尝试更换.toArray()与部分.then()我收到以下错误:“col.find(...),然后是不是一个函数”。

如果我将.find()替换为.findOne().then() ,则代码可以正常工作。

任何帮助表示赞赏。

find返回一个Cursor ,但是光标的toArray方法返回一个promise。 因此,您可以执行以下操作:

collection.find(filter).toArray().then(...)

我假设您正在使用mongoosejs。

collection.find()只是一个查询。 为了使它执行并返回一个promise,您需要在其上调用.exec()。

collection.find(filter).exec()
    .then(items => console.log(items))
    .catch(err => { // handle error })

猫鼬文档为您提供了有关如何在回调或Promise中使用猫鼬的更多详细信息: https : //mongoosejs.com/docs/api.html#model_Model.find

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM