文档菜单
文档首页
/ / /
Node.js 驱动程序
/ / /

跳过返回结果

在本页

  • 概述
  • 示例文档
  • 示例

使用skip 来省略读取操作返回的文档列表开头的文档。您可以将 skip排序 结合使用,以省略给定查询的最高(降序)或最低(升序)结果。由于在没有排序的情况下,返回的文档顺序没有保证,因此在不使用 sort 的情况下使用 skip 将省略任意文档。文档返回顺序 不保证,使用 skip 不使用 sort 将省略任意文档。

如果 skip 的值超过查询匹配的文档数,则该查询返回无文档。

要遵循本指南中的示例,请使用以下代码片段将描述水果的文档插入到 myDB.fruits 集合

const myDB = client.db("myDB");
const myColl = myDB.collection("fruits");
await myColl.insertMany([
{ "_id": 1, "name": "apples", "qty": 5, "rating": 3 },
{ "_id": 2, "name": "bananas", "qty": 7, "rating": 1 },
{ "_id": 3, "name": "oranges", "qty": 6, "rating": 2 },
{ "_id": 4, "name": "avocados", "qty": 3, "rating": 5 },
]);

注意

您的查询操作可能返回一个包含匹配文档的游标引用。要了解如何检查游标中存储的数据,请参阅游标基础知识页面。

在下面的示例中,我们使用一个匹配所有文档的过滤器查询集合,并将指定sortskip命令作为查询选项的选项传递。排序选项指定具有更高rating值的文档在具有较低评分的文档之前返回。skip选项指定从结果中省略前两个文档

// define an empty query document
const query = {};
const options = {
// sort in descending (-1) order by rating
sort : { rating: -1 },
// omit the first two documents
skip : 2,
}
const cursor = myColl.find(query, options);
for await (const doc of cursor) {
console.dir(doc);
}

由于我们指定查询跳过前两个文档,所以上面代码片段打印出第三和第四个评分最高的文档

{ "_id": 3, "name": "oranges", "qty": 6, "rating": 2 }
{ "_id": 2, "name": "bananas", "qty": 7, "rating": 1 }

sortskip选项也可以作为链接到find方法的链式方法指定。以下两个命令是等效的

myColl.find(query, { sort: { rating: -1}, skip: 2});
myColl.find(query).sort({rating: -1}).skip(2);

返回

排序结果