提问者:小点点

node.js和MongoDB:await collection.find vs.collection.find.exec用于异步


我最近遇到了node.js/MongoDB模式:collection.find({。。。})。exec(),据我所知,它返回一个承诺。

我在代码中使用:await Collection.Find({。。。})

这些有什么不同? 是否应该使用:await collection.find({。。。})。exec()?


共1个答案

匿名用户

在Mongoose中,查询是组合的,但不一定立即运行,它们返回一个查询对象,您可以使用它添加或链接其他查询,然后一起执行。

猫鼬查询不是承诺。 它们有一个.then()函数和async/await作为方便。 对于回调,也可以使用.exec()代替.then()

你应该用哪一个?

  • 等待收集。查找({。。。})
  • 等待Collection.find({。。。}).exec()

答:两个都好。

两者都有一些功能,所以您可以根据您的方便使用这两个中的任何一个。

但是,如果您使用.exec(),它将在出现错误/异常时为您提供更好的堆栈跟踪。 更多信息请点击这里。

相关问题