# Query Engine API: Single Operations
# findOne()
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()
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()
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',
  },
});
# update()
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',
  },
});
# delete()
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 },
});