注册

详解MongoDB的skip()函数:跳过查询返回的文档数量

MongoDB skip() 函数说明

skip() 函数用于跳过指定数量的文档,返回从指定的偏移量开始的文档。

语法

skip() 函数的语法如下所示:

db.collection.find().skip(number)

参数

skip() 函数的参数如下所示:

参数 描述
number 要跳过的文档数量。

使用方法

例如,假设我们有一个集合 students,包含一些学生的信息:

db.students.insertMany([
  { name: "Lucy", age: 18, gender: "female" },
  { name: "Tom", age: 20, gender: "male" },
  { name: "Mary", age: 19, gender: "female" },
  { name: "Jack", age: 21, gender: "male" },
  { name: "Lily", age: 18, gender: "female" },
  { name: "John", age: 22, gender: "male" }
])

实例1:从偏移量开始查询所有文档

如果要跳过前面的 2 个文档,从第 3 个文档开始查询,可以使用如下的命令:

db.students.find().skip(2)

执行结果如下:

{ "_id" : ObjectId("6141a0c6a4b32fcce8ec9d94"), "name" : "Mary", "age" : 19, "gender" : "female" }
{ "_id" : ObjectId("6141a0c6a4b32fcce8ec9d95"), "name" : "Jack", "age" : 21, "gender" : "male" }
{ "_id" : ObjectId("6141a0c6a4b32fcce8ec9d96"), "name" : "Lily", "age" : 18, "gender" : "female" }
{ "_id" : ObjectId("6141a0c6a4b32fcce8ec9d97"), "name" : "John", "age" : 22, "gender" : "male" }

结果中,跳过前 2 个文档,从第 3 个文档开始查询。

实例2:限制结果集大小并跳过部分文档

如果要限制结果集大小为 3,同时跳过前面的 2 个文档,可以使用如下的命令:

db.students.find().limit(3).skip(2)

执行结果如下:

{ "_id" : ObjectId("6141a0c6a4b32fcce8ec9d94"), "name" : "Mary", "age" : 19, "gender" : "female" }
{ "_id" : ObjectId("6141a0c6a4b32fcce8ec9d95"), "name" : "Jack", "age" : 21, "gender" : "male" }
{ "_id" : ObjectId("6141a0c6a4b32fcce8ec9d96"), "name" : "Lily", "age" : 18, "gender" : "female" }

结果中,跳过前 2 个文档,只返回后面的 3 个文档。

小结

以上就是 skip() 函数的作用与使用方法的完整攻略。通过 skip() 函数,我们可以跳过指定数量的文档,获取跳过后的文档结果。在查询较大数据集的场景下,该函数可与 limit() 函数组合使用来获取分页结果。