首先在数据库里面添加了10条如下结构的测试数据,其中age字段的值从0依次递增。
MongoDB的skip,limit和sort的执行顺序

当同时使用skip和limit的时候

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

当skip,limit和sort同时存在的时候

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

使用管道控制skip,limit和sort的执行顺序

MongoDB的skip,limit和sort的执行顺序
从执行的结果来看,先是执行了skip,跳过了3条数据,然后limit,从age=3开始,取了3条数据,最后执行了sort进行排序。
MongoDB的skip,limit和sort的执行顺序
从执行的结果来看,先执行limit,选取了前三条数据。然后跳过了3条记录。此时相当于已经没有了数据,在进行排序,结果就是空的。
MongoDB的skip,limit和sort的执行顺序
从执行的结果来看,先执行sort,对age按正序排序。然后执行limit,选取了前三条。最后又跳过了3条记录,那么就会获得空记录。

因此: 当你使用管道来执行skiplimitsort操作时,它们的位置决定了它们的执行顺序。

相关文章:

  • 2021-06-04
  • 2021-11-25
  • 2022-12-23
  • 2021-09-11
  • 2022-12-23
  • 2022-12-23
  • 2021-04-30
  • 2021-06-27
猜你喜欢
  • 2021-12-09
  • 2022-02-15
  • 2021-09-21
  • 2022-12-23
  • 2021-09-27
  • 2022-01-30
相关资源
相似解决方案