Bulk Operations with the Query Engine API
✋ Caution
The content of this page has not been updated to Strapi v5 yet.
✋ Caution
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 |
✋ Caution
- 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