什么是与MongoDb和Nodejs的Ajax分页的最佳方式是什么?

我有mongodb和NodeJs。 连接是通过mongoosejs完成的。
开发Ajax无限滚动的最佳方法是什么? 我应该使用限制和抵消?

当您将数据分页到数据集中时,“跳过和限制”方法效率不高。 这是一个有效的Shlemiel画家的algorithm 。

范围查询效率更高(索引支持时)。 例如,让我们想象你正在显示微博。 你的页面大小是20,你在页面1000上,想装载页面1001。

这个查询

db.tweets.find().sort({created_at: -1}).skip(1001*20).limit(20) 

效率低于

 db.tweets.find({created_at: {$lt: last_displayed_date}}). sort({created_at: -1}).limit(20); 

(前提是你在created_at上有索引)。

您会明白:在加载页面时,请记下最后一条推文的时间戳,并用它来查询下一页。