# 排序、跳过与限制（sort、skip、limit）

URL: https://caijiao.org/mongodb/03-query/03-sort-skip-limit
Source: docs/mongodb/03-query/03-sort-skip-limit.md
Description: 本章节介绍 MongoDB 中查询结果的排序（sort）、跳过（skip）和限制（limit）功能，帮助用户灵活控制数据分页和显示顺序。

[MongoDB](/mongodb/) 提供多种方法对查询结果进行排序、跳过指定条数以及限制返回数量，常用于分页和结果筛选。

## 排序（sort）

`sort()` 用于根据字段对查询结果进行升序或降序排列：

```js
db.users.find().sort({ age: 1 })    // 按 age 升序排列
db.users.find().sort({ age: -1 })   // 按 age 降序排列
````

* 1 表示升序，-1 表示降序。
* 可以同时根据多个字段排序，例如：

  ```js
  db.users.find().sort({ age: 1, name: -1 })
  ```

## 跳过（skip）

`skip()` 用于跳过查询结果的前 N 条记录，常配合分页使用：

```js
db.users.find().skip(10)
```

以上示例跳过前 10 条数据，返回后续文档。

## 限制（limit）

`limit()` 用于限制查询结果返回的最大文档数：

```js
db.users.find().limit(5)
```

只返回最多 5 条文档。

## 组合使用示例

实现分页功能时，通常结合 `skip` 和 `limit`：

```js
const page = 2
const pageSize = 10

db.users.find()
  .sort({ age: -1 })
  .skip((page - 1) * pageSize)
  .limit(pageSize)
```

该示例返回第 2 页数据，每页 10 条，按年龄降序排序。

---

合理利用排序、跳过和限制操作，能有效管理查询结果，提升用户体验和系统性能。
