我试图理解mongoose代码是如何检测查询是否完成并执行查询的。
例如:
const result=await this.find({})在这种情况下,mongoose触发器find。
this.find({}).sort().limit(10)在这种情况下,mongoose触发器发现排序和受限。
mongoose代码如何检测find之后是否有链式方法
为什么mongoose不在find上开始查询,而是等待limit?我不太确定,不清楚。
发布于 2021-03-12 14:12:21
mongoose查询可以通过以下两种方式之一执行。
首先,如果您传入一个回调函数,Mongoose将异步执行查询并将结果传递给回调函数。
查询还具有.then()函数或异步/等待,因此可以用作promise。
因此,基本上当你附加".then“或"await”查询时,Mongoose异步地执行查询。
因此,在传递回调、追加.then或等待回调之前,下面的代码不会执行查询。
this.find({}).sort().limit(10)将不同的方法链接到一个查询将修改该查询,直到它最终被执行。
您可以在这里了解更多信息https://mongoosejs.com/docs/queries.html
https://stackoverflow.com/questions/66594867
复制相似问题