Document Service API: Selecting fields
By default the Document Service API returns all the fields of a document but does not populate any fields. This page describes how to use the fields parameter to return only specific fields with the query results.
You can also use the populate parameter to populate relations, media fields, components, or dynamic zones (see the populate parameter documentation).
Though it's recommended to target entries by their documentId in Strapi 5, entries might still have an id field, and you will see it in the returned response. This should ease your transition from Strapi 4. Please refer to the breaking change entry for more details.
Select fields with findOne() queries
Select specific fields to return when finding a document by documentId.
const document = await strapi.documents("api::restaurant.restaurant").findOne({
documentId: 'a1b2c3d4e5f6g7h8i9j0klm',
fields: ["name", "description"],
});{
documentId: "a1b2c3d4e5f6g7h8i9j0klm",
name: "Biscotte Restaurant",
description: "Welcome to Biscotte restaurant! …"
}Select fields with findFirst() queries
Select specific fields to return when finding the first matching document.
const document = await strapi.documents("api::restaurant.restaurant").findFirst({
fields: ["name", "description"],
});{
documentId: "a1b2c3d4e5f6g7h8i9j0klm",
name: "Biscotte Restaurant",
description: "Welcome to Biscotte restaurant! …"
}Select fields with findMany() queries
Select specific fields to return when finding multiple documents.
const documents = await strapi.documents("api::restaurant.restaurant").findMany({
fields: ["name", "description"],
});[
{
documentId: "a1b2c3d4e5f6g7h8i9j0klm",
name: "Biscotte Restaurant",
description: "Welcome to Biscotte restaurant! …"
}
// ...
]Select fields with create() queries
Select specific fields to return when creating a new document.
const document = await strapi.documents("api::restaurant.restaurant").create({
data: {
name: "Restaurant B",
description: "Description for the restaurant",
},
fields: ["name", "description"],
});{
id: 4,
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'Restaurant B',
description: 'Description for the restaurant'
}Select fields with update() queries
Select specific fields to return when updating a document.
const document = await strapi.documents("api::restaurant.restaurant").update({
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
data: {
name: "Restaurant C",
},
fields: ["name"],
});{
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'Restaurant C'
}Select fields with delete() queries
Select specific fields to return when deleting a document.
const document = await strapi.documents("api::restaurant.restaurant").delete({
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
fields: ["name"],
}); documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
// All of the deleted document's versions are returned
entries: [
{
id: 4,
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'Restaurant C',
// …
}
]
}Select fields with publish() queries
Select specific fields to return when publishing a document.
const document = await strapi.documents("api::restaurant.restaurant").publish({
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
fields: ["name"],
});{
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
// All of the published locale entries are returned
entries: [
{
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'Restaurant B'
}
]
}Select fields with unpublish() queries
Select specific fields to return when unpublishing a document.
const document = await strapi.documents("api::restaurant.restaurant").unpublish({
documentId: "cjld2cjxh0000qzrmn831i7rn",
fields: ["name"],
});{
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
// All of the published locale entries are returned
entries: [
{
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'Restaurant B'
}
]
}Select fields with discardDraft() queries
Select specific fields to return when discarding a draft document.
const document = await strapi.documents("api::restaurant.restaurant").discardDraft({
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
fields: ["name"],
});{
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
// All of the discarded draft entries are returned
entries: [
{
"name": "Restaurant B"
}
]
}