Single Operations with the Query Engine API
The content of this page might not be fully up-to-date with Strapi 5 yet.
findOne()
Only use the Query Engine's findOne()
method if the Document Service's findOne()
method can't cover your use case.
Finds the first entry matching the parameters.
Syntax: findOne(parameters) ⇒ Entry
Parameters
Parameter | Type | Description |
---|---|---|
select | String, or Array of strings | Attributes to return |
where | WhereParameter | Filters to use |
offset | Integer | Number of entries to skip |
orderBy | OrderByParameter | Order definition |
populate | PopulateParameter | Relations to populate |
Example
const entry = await strapi.db.query('api::blog.article').findOne({
select: ['title', 'description'],
where: { title: 'Hello World' },
populate: { category: true },
});
findMany()
Only use the Query Engine's findMany()
method if the Document Service findMany()
method can't cover your use case.
Finds entries matching the parameters.
Syntax: findMany(parameters) ⇒ Entry[]
Parameters
Parameter | Type | Description |
---|---|---|
select | String, or Array of strings | Attributes to return |
where | WhereParameter | Filters to use |
limit | Integer | Number of entries to return |
offset | Integer | Number of entries to skip |
orderBy | OrderByParameter | Order definition |
populate | PopulateParameter | Relations to populate |
Example
const entries = await strapi.db.query('api::blog.article').findMany({
select: ['title', 'description'],
where: { title: 'Hello World' },
orderBy: { publishedAt: 'DESC' },
populate: { category: true },
});
findWithCount()
Finds and counts entries matching the parameters.
Syntax: findWithCount(parameters) => [Entry[], number]
Parameters
Parameter | Type | Description |
---|---|---|
select | String, or Array of strings | Attributes to return |
where | WhereParameter | Filters to use |
limit | Integer | Number of entries to return |
offset | Integer | Number of entries to skip |
orderBy | OrderByParameter | Order definition |
populate | PopulateParameter | Relations to populate |
Example
const [entries, count] = await strapi.db.query('api::blog.article').findWithCount({
select: ['title', 'description'],
where: { title: 'Hello World' },
orderBy: { title: 'DESC' },
populate: { category: true },
});
create()
Only use the Query Engine's create()
method if the Document Service create()
method can't cover your use case.
Creates one entry and returns it.
Syntax: create(parameters) => Entry
Parameters
Parameter | Type | Description |
---|---|---|
select | String, or Array of strings | Attributes to return |
populate | PopulateParameter | Relations to populate |
data | Object | Input data |
Example
const entry = await strapi.db.query('api::blog.article').create({
data: {
title: 'My Article',
},
});
In the data
object, relations can be managed with the connect
, disconnect
, and set
parameters using the syntax described for the REST API (see managing relations).
update()
Only use the Query Engine's update()
method if the Document Service update()
method can't cover your use case.
Updates one entry and returns it.
Syntax: update(parameters) => Entry
Parameters
Parameter | Type | Description |
---|---|---|
select | String, or Array of strings | Attributes to return |
populate | PopulateParameter | Relations to populate |
where | WhereParameter | Filters to use |
data | Object | Input data |
Example
const entry = await strapi.db.query('api::blog.article').update({
where: { id: 1 },
data: {
title: 'xxx',
},
});
In the data
object, relations can be managed with the connect
, disconnect
, and set
parameters using the syntax described for the REST API (see managing relations).
delete()
Only use the Query Engine's delete()
method if the Document Service delete()
method can't cover your use case.
Deletes one entry and returns it.
Syntax: delete(parameters) => Entry
Parameters
Parameter | Type | Description |
---|---|---|
select | String, or Array of strings | Attributes to return |
populate | PopulateParameter | Relations to populate |
where | WhereParameter | Filters to use |
Example
const entry = await strapi.db.query('api::blog.article').delete({
where: { id: 1 },
});