使用MongoDb和Nodejs进行ajax分页的最佳方法是什么?

Ole*_*ats 13 ajax mongoose mongodb node.js infinite-scroll

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

Ser*_*sev 33

当您在远程数据集中进行分页时,"跳过和限制"方法效率不高.它实际上是Shlemiel the Painter的算法.

范围查询效率更高(当索引支持时).例如,让我们假设您正在显示推文.您的页面大小为20,您在第1000页,并且要加载页面1001.

这个查询

db.tweets.find().sort({created_at: -1}).skip(1001*20).limit(20)
Run Code Online (Sandbox Code Playgroud)

小于有效

db.tweets.find({created_at: {$lt: last_displayed_date}}).
          sort({created_at: -1}).limit(20);
Run Code Online (Sandbox Code Playgroud)

(假设您有索引created_at).

您明白了这一点:当您加载页面时,请记下上一条推文的时间戳,并使用它来查询下一页.

  • 男人,想出点什么.我给了你基本的想法:) (3认同)
  • 按`event_date,event_id`排序. (2认同)