单条目操作 Single Operations

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

findOne()

如果 实体服务 findOne 无法满足您的使用情况,则仅使用查询引擎的 findOne。

查找与参数匹配的第一个条目。

语法:findOne(parameters) ⇒ Entry

Parameters

ParameterTypeDescription
selectString, or Array of stringsAttributes to return
whereWhereParameterFilters to use
offsetIntegerNumber of entries to skip
orderByOrderByParameterOrder definition
populatePopulateParameterRelations to populate

Example

js
const entry = await strapi.db.query('api::blog.article').findOne({
  select: ['title', 'description'],
  where: { title: 'Hello World' },
  populate: { category: true },
})

findMany()

如果 实体服务 findMany 无法满足您的使用情况,则仅使用查询引擎的 findMany。

查找与参数匹配的条目。

语法:findMany(parameters) ⇒ Entry[]

Parameters

参数类型说明
select字符串或字符串数组要返回的 属性
whereWhereParameter要使用的 过滤器
limit整数要返回的条目数
offset整数要跳过的条目数
orderByOrderByParameterOrder 定义
populatePopulateParameterpopulate 的关系

Example

js
const entries = await strapi.db.query('api::blog.article').findMany({
  select: ['title', 'description'],
  where: { title: 'Hello World' },
  orderBy: { publishedAt: 'DESC' },
  populate: { category: true },
})

findWithCount()

查找并计算与参数匹配的条目数。

语法:findWithCount(parameters) => [Entry[], number]

Parameters

ParameterTypeDescription
selectString, or Array of stringsAttributes to return
whereWhereParameterFilters to use
limitIntegerNumber of entries to return
offsetIntegerNumber of entries to skip
orderByOrderByParameterOrder definition
populatePopulateParameterRelations to populate

Example

js
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()

如果 Entity Service create 无法满足您的使用情况,则仅使用查询引擎的创建。

创建一个条目并返回它。

语法:create(parameters) => Entry

Parameters

参数类型说明
select字符串或字符串数组要返回的 属性
populatePopulateParameterpopulate 的关系
data对象输入数据

Example

js
const entry = await strapi.db.query('api::blog.article').create({
  data: {
    title: 'My Article',
  },
})

data 对象中,可以使用 REST API 中描述的语法,通过 connectdisconnectset 参数来管理关系(参见 管理关系)。

update()

仅当 实体服务更新 无法满足您的使用情况时,才使用查询引擎的更新。

更新一个条目并返回它。

语法:update(parameters) => Entry

Parameters

参数类型说明
select字符串或字符串数组要返回的 属性
populatePopulateParameterpopulate 的关系
whereWhereParameter要使用的 过滤器
data对象输入数据

Example

js
const entry = await strapi.db.query('api::blog.article').update({
  where: { id: 1 },
  data: {
    title: 'xxx',
  },
})

delete()

如果 Entity Service delete 无法满足您的使用情况,则仅使用查询引擎的删除。

删除一个条目并返回它。

语法:delete(parameters) => Entry

Parameters

参数类型说明
select字符串或字符串数组要返回的 属性
populatePopulateParameterpopulate 的关系
whereWhereParameter要使用的 过滤器

Example

js
const entry = await strapi.db.query('api::blog.article').delete({
  where: { id: 1 },
})