使用实体服务 API 进行排序与分页
页面摘要: 使用
sort、start/limit或page/pageSize参数,对实体服务 API 的查询结果进行排序与分页,从而控制结果顺序并获取特定的数据子集。
WARNING
Entity Service API 在 Strapi v5 中已弃用。请考虑改用 Document Service API。
实体服务 API 提供了对通过 findMany() 方法获取的结果进行排序(ordering)与分页(pagination)的能力。
排序(Ordering)
要对实体服务 API 返回的结果排序,请使用 sort 参数。结果可按 单个 或 多个 属性排序,也可使用 关联排序。
单个字段(Single)
要按单个字段对结果排序,可将字段以以下两种方式之一传入 sort 参数:
- 作为
string,以默认升序排序;或 - 作为
object,同时定义字段名与排序方向(即'asc'表示升序,'desc'表示降序)
strapi.entityService.findMany('api::article.article', {
sort: 'id',
});
// 带方向的单个字段排序
strapi.entityService.findMany('api::article.article', {
sort: { id: 'desc' },
});
多个字段(Multiple)
要按多个字段排序,可将字段以数组形式以下列两种方式之一传入 sort 参数:
- 作为字符串数组,以默认升序对多个字段排序;或
- 作为对象数组,同时定义字段名与排序方向(即
'asc'表示升序,'desc'表示降序)
strapi.entityService.findMany('api::article.article', {
sort: ['publishDate', 'name'],
});
// 带方向的多个字段排序
strapi.entityService.findMany('api::article.article', {
sort: [{ title: 'asc' }, { publishedAt: 'desc' }],
});
关联排序(Relational ordering)
字段也可基于关联中的字段进行排序:
strapi.entityService.findMany('api::article.article', {
sort: {
author: {
name: 'asc',
},
},
});
分页(Pagination)
要对实体服务 API 返回的结果进行分页,可使用 start 与 limit 参数:
strapi.entityService.findMany('api::article.article', {
start: 10,
limit: 15,
});
也可改用 page 与 pageSize 参数:
strapi.entityService.findMany('api::article.article', {
page: 1,
pageSize: 15,
});