mongodb - 如何在Node.js中使用Mongoose进行分页?

我正在用node.js和mongoose编写一个webapp。如何对从.find()调用中获得的结果分页?我想要一个与SQL中的"LIMIT 50,100"类似的功能。


最佳答案:

我对这个问题的公认答案感到非常失望。这不会缩放。如果您阅读了光标上的精细打印。跳过():
cursor.skip()方法通常很昂贵,因为它要求服务器在返回结果之前从集合或索引的开始处遍历以获取偏移量或跳过位置。随着偏移量(例如上面的pageNumber)的增加,cursor.skip()将变得更慢,CPU占用更大。对于较大的集合,cursor.skip()可能会成为IO绑定的。
要以可缩放的方式实现分页,请结合限制()和至少一个筛选条件,Createdon日期适合多种用途。

MyModel.find( { createdOn: { $lte: request.createdOnBefore } } )
.limit( 10 )
.sort( '-createdOn' )