# 使用实体服务 API 进行排序和分页

> Source: https://strapi.nodejs.cn/cms/api/entity-service/order-pagination

🌐 Ordering and Paginating with the Entity Service API

使用 `sort`、`start`/`limit` 或 `page`/`pageSize` 参数对实体服务 API 查询结果进行排序和分页，以控制结果顺序并检索特定的数据子集。

🌐 Order and paginate Entity Service API query results using `sort`, `start`/`limit`, or `page`/`pageSize` parameters to control result ordering and retrieve specific data subsets.

:::caution

在 Strapi v5 中，实体服务 API 已被弃用。请考虑改用 [文档服务 API](/cms/api/document-service)。

🌐 The Entity Service API is deprecated in Strapi v5. Please consider using the [Document Service API](/cms/api/document-service) instead.

:::

[实体服务 API](/cms/api/entity-service) 提供通过其 [findMany()](/cms/api/entity-service/crud#findmany) 方法找到的结果进行 [排序](#ordering) 和 [分页](#pagination) 的能力。

🌐 The [Entity Service API](/cms/api/entity-service) offers the ability to [order](#ordering) and [paginate](#pagination) results found with its [findMany()](/cms/api/entity-service/crud#findmany) method.

## 排序 {#ordering}

🌐 Ordering

要对实体服务 API 返回的结果进行排序，请使用 `sort` 参数。结果可以基于[单个](#single)或[多个](#multiple)属性进行排序，也可以使用[关系排序](#relational-ordering)。

🌐 To order results returned by the Entity Service API, use the `sort` parameter. Results can be ordered based on a [single](#single) or on [multiple](#multiple) attribute(s) and can also use [relational ordering](#relational-ordering).

### 单身 {#single}

🌐 Single

要按单个字段对结果进行排序，请将其传递给 `sort` 参数，方法如下：

🌐 To order results by a single field, pass it to the `sort` parameter either:

- 作为 `string` 用默认的升序排序，或者
- 作为一个 `object` 来定义字段名和顺序（即 `'asc'` 表示升序，`'desc'` 表示降序）

```js
strapi.entityService.findMany('api::article.article', {
  sort: 'id',
});

// single with direction
strapi.entityService.findMany('api::article.article', {
  sort: { id: 'desc' },
});
```

### 多个 {#multiple}

🌐 Multiple

要按多个字段排序结果，请将字段作为数组传递给 `sort` 参数，方式如下：

🌐 To order results by multiple fields, pass the fields as an array to the `sort` parameter either:

- 作为字符串数组，使用默认升序对多个字段进行排序，或者
- 作为对象数组来定义字段名称和顺序（即升序为 `'asc'`，降序为 `'desc'`）

```js
strapi.entityService.findMany('api::article.article', {
  sort: ['publishDate', 'name'],
});

// multiple with direction
strapi.entityService.findMany('api::article.article', {
  sort: [{ title: 'asc' }, { publishedAt: 'desc' }],
});
```

### 关系顺序 {#relational-ordering}

🌐 Relational ordering

字段还可以根据关系中的字段进行排序：

🌐 Fields can also be sorted based on fields from relations:

```js
strapi.entityService.findMany('api::article.article', {
  sort: {
    author: {
      name: 'asc',
    },
  },
});
```

## 分页 {#pagination}

🌐 Pagination

要对实体服务 API 返回的结果进行分页，你可以使用 `start` 和 `limit` 参数：

🌐 To paginate results returned by the Entity Service API, you can use the `start` and `limit` parameters:

```js
strapi.entityService.findMany('api::article.article', {
  start: 10,
  limit: 15,
});
```

你也可以改用 `page` 和 `pageSize` 参数：

🌐 You may instead use the `page` and `pageSize` parameters:

```js
strapi.entityService.findMany('api::article.article', {
  page: 1,
  pageSize: 15,
});
```
