首先在数据库里面添加了10条如下结构的测试数据,其中age字段的值从0依次递增。

当同时使用skip和limit的时候


从上面两幅图中可以看到,同时使用skip和limit的时候,不管如何调用,默认都是先进行skip操作,然后再limit。
当skip,limit和sort同时存在的时候

可以看到,先是对所有数据按age倒序进行了一次排列,然后再执行skip操作,最后limit操作。
使用管道控制skip,limit和sort的执行顺序

从执行的结果来看,先是执行了skip,跳过了3条数据,然后limit,从age=3开始,取了3条数据,最后执行了sort进行排序。

从执行的结果来看,先执行limit,选取了前三条数据。然后跳过了3条记录。此时相当于已经没有了数据,在进行排序,结果就是空的。

从执行的结果来看,先执行sort,对age按正序排序。然后执行limit,选取了前三条。最后又跳过了3条记录,那么就会获得空记录。
因此: 当你使用管道来执行skip,limit和sort操作时,它们的位置决定了它们的执行顺序。
本文探讨了MongoDB中skip、limit和sort的执行顺序。实验结果显示,通常skip先于limit执行,而sort可以在skip和limit之前或之后。通过管道操作符,可以明确控制三者的执行顺序,例如先skip、再limit、最后sort。不同执行顺序对查询结果产生直接影响。
1606

被折叠的 条评论
为什么被折叠?



