Skip to main content

Ordering and Paginating with the Query Engine API

🏗 Work in progress

The content of this page might not be fully up-to-date with Strapi 5 yet.

🤓 Have you considered the Document Service API?

The Document Service API is the recommended API to interact with your application's database. Only use the Query Engine API if the Document Service API does not cover your use case.

The Query Engine API offers the ability to order and paginate results.

Ordering

To order results returned by the Query Engine, use the orderBy parameter. Results can be ordered based on a single or on multiple attributes and can also use relational ordering.

Single

strapi.db.query('api::article.article').findMany({
orderBy: 'id',
});

// single with direction
strapi.db.query('api::article.article').findMany({
orderBy: { id: 'asc' },
});

Multiple

strapi.db.query('api::article.article').findMany({
orderBy: ['id', 'name'],
});

// multiple with direction
strapi.db.query('api::article.article').findMany({
orderBy: [{ title: 'asc' }, { publishedAt: 'desc' }],
});

Relational ordering

strapi.db.query('api::article.article').findMany({
orderBy: {
author: {
name: 'asc',
},
},
});

Pagination

To paginate results returned by the Query Engine API, use the offset and limit parameters:

strapi.db.query('api::article.article').findMany({
offset: 15,
limit: 10,
});