批量操作

使用 Strapi 的查询引擎 API 对多个条目执行操作。

为避免性能问题,不允许对关系进行批量操作。

createMany()

创建多个条目。

语法:createMany(parameters) => { count: number, ids: id[] }

参数

参数类型说明
data对象数组输入数据数组
  • MySQL 将仅返回包含最后插入的 id 的一个 id 数组,而不是整个列表。
  • 在 Strapi v4.9.0 之前,createMany() 仅返回 count

示例

js
await strapi.db.query('api::blog.article').createMany({
  data: [
    {
      title: 'ABCD',
    },
    {
      title: 'EFGH',
    },
  ],
})

// { count: 2 , ids: [1,2]}

updateMany()

更新与参数匹配的多个条目。

Syntax: updateMany(parameters) => { count: number }

Parameters

ParameterTypeDescription
whereWhereParameterFilters to use
dataObjectInput data

Example

js
await strapi.db.query('api::shop.article').updateMany({
  where: {
    price: 20,
  },
  data: {
    price: 18,
  },
})

// { count: 42 }

deleteMany()

删除多个符合参数的条目。

Syntax: deleteMany(parameters) => { count: number }

Parameters

ParameterTypeDescription
whereWhereParameterFilters to use

Example

js
await strapi.db.query('api::blog.article').deleteMany({
  where: {
    title: {
      $startsWith: 'v3',
    },
  },
})

// { count: 42 }

Aggregations

count()

计算与参数匹配的条目数。

Syntax: count(parameters) => number

Parameters

ParameterTypeDescription
whereWhereParameterFilters to use
js
const count = await strapi.db.query('api::blog.article').count({
  where: {
    title: {
      $startsWith: 'v3',
    },
  },
})

// 12