Docs 菜单
Docs 主页
/ / /
Node.js
/ / /

跳过返回的结果

在此页面上

  • 概述
  • 示例文档
  • 例子

使用 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 选项指定具有较高评级的水果文档应在具有较低评级的水果文档之前返回。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);

后退

对结果进行排序