Docs 菜单
Docs 主页
/ / /
Node.js 驱动程序
/ / /

跳过返回的结果

在此页面上

  • Overview
  • 示例文档
  • 例子

使用 skip可以省略读取操作返回的文档列表开头的文档。 您可以将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 命令作为查询选项的选项。sort 选项指定具有较高 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);
}

由于我们指定该查询跳过前2个文档,因此上面的代码段将打印评分第三和第四高的文档:

{ "_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);

后退

对结果进行排序