Limit与Skip方法

Limit与Skip方法

如果你需要在MongoDB中读取指定数量的数据记录,可以使用MongoDB的Limit方法,limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。

db.persons.find().limit(2)Code language: CSS (css)

获取前两条记录。

Skip() 方法

我们除了可以使用limit()方法来读取指定数量的数据外,还可以使用skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。

db.persons.find().limit(1).skip(1)Code language: CSS (css)

跳过第一条然后获取一条,也就是显示第二条记录。

通过limit和skip可以实现分页。

db.persons.find()
db.persons.find().limit(3).skip(3)
db.persons.find().skip(3).limit(3)Code language: CSS (css)

这两个函数可以调换位置,效果相同。

补充说明

  • limit() 不传参数或参数为0时,返回所有匹配文档
  • skip() 不传参数或参数为0时,不从结果集中跳过任何文档
  • 分页原理:第一页 skip(0).limit(n),第二页 skip(n).limit(n),第三页 skip(2n).limit(n),以此类推
  • skip() 在大数据量时性能较差,因为需要遍历跳过的文档。数据量大时建议用范围查询加排序来替代分页,例如按 _id 或时间字段做条件翻页
  • find() 返回结果本身没有固定顺序,分页查询时建议配合 sort() 使用,确保每次查询结果顺序一致
db.persons.find().sort({_id: 1}).limit(3).skip(3)Code language: CSS (css)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注