Single Operations with the Query Engine API
The content of this page has not been updated to Strapi v5 yet.
Only use the Query Engine's findOne if the Entity Service findOne 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 if the Entity Service findMany 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 if the Entity Service create 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 if the Entity Service update 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 if the Entity Service delete 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 },
});