每个文档都按照日期排序。这确实很简单。
下一页也采取类似的处理方式,唯一不同的是,我们用skip 1,000代替skip 0。数据库很容易就找到了2,000个文档并返回1,000个文档。...是的,它找到了2,000个文档并返回了1,000个文档。这就是skip和limit命令的工作方式。...数据库必须找到5,001,000个文档并返回1,000个文档。难怪会花费那么长的时间!其实,有一个更好的方法。
对文档执行跳过(Skipping)命令很费时间,相反,不对文档执行跳过命令就不费时间了。...我们取回1,000条结果,并准备将它们显示出来。我们必须循环访问这1,000个文档,每个文档都有一个日期。我们还可以很方便地按照日期进行排序。...记住所显示文档的最后一个日期(例如,通过会话变量或查询字符串),我们就可以对查询语句做如下图所示的相应修改,并且不再需要跳过命令。
第二条查询语句就不包含跳过命令,同时有效使用了我们的索引。