import ConsiderDocumentService from '/docs/snippets/consider-document-service.md'
import QueryEnginePrereqs from '/docs/snippets/query-engine-prereqs.md'
Bulk Operations with the Query Engine API#
To avoid performance issues, bulk operations are not allowed on relations.
createMany()#
Creates multiple entries.
Syntax: createMany(parameters) => { count: number, ids: id[] }
Parameters#
| Parameter | Type | Description |
|---|---|---|
data | Array of objects | Array of input data |
- MySQL will only return an array of one id containing the last inserted id, not the entire list.
- Prior to Strapi v4.9.0,
createMany()only returns thecount.
Example#
await strapi.db.query("api::blog.article").createMany({
data: [
{
title: "ABCD",
},
{
title: "EFGH",
},
],
});
// { count: 2 , ids: [1,2]}
updateMany()#
Updates multiple entries matching the parameters.
Syntax: updateMany(parameters) => { count: number }
Parameters#
| Parameter | Type | Description |
|---|---|---|
where | WhereParameter | Filters to use |
data | Object | Input data |
Example#
await strapi.db.query("api::shop.article").updateMany({
where: {
price: 20,
},
data: {
price: 18,
},
});
// { count: 42 }
deleteMany()#
Deletes multiple entries matching the parameters.
Syntax: deleteMany(parameters) => { count: number }
Parameters#
| Parameter | Type | Description |
|---|---|---|
where | WhereParameter | Filters to use |
Example#
await strapi.db.query("api::blog.article").deleteMany({
where: {
title: {
$startsWith: "v3",
},
},
});
// { count: 42 }
Aggregations#
count()#
Counts entries matching the parameters.
Syntax: count(parameters) => number
Parameters#
| Parameter | Type | Description |
|---|---|---|
where | WhereParameter | Filters to use |
const count = await strapi.db.query("api::blog.article").count({
where: {
title: {
$startsWith: "v3",
},
},
});
// 12