Skip to main content

ドキュメントサービスAPI: フィールドの選択

デフォルトでは、ドキュメントサービスAPI はドキュメントのすべてのフィールドを返しますが、フィールドのポピュレートは行いません。このページでは、fields パラメーターを使用してクエリ結果に特定のフィールドのみを返す方法について説明します。

💡 Tip

populate パラメーターを使用して、関連データやメディアフィールド、コンポーネント、ダイナミックゾーンをポピュレートすることもできます(populate パラメーターのドキュメントを参照してください)。

✏️ Note

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.

findOne() クエリでフィールドを選択

特定のドキュメントを取得する際に、ドキュメントサービスAPIで返されるフィールドを選択するには:

リクエストの例
const document = await AI Marketer.documents("api::restaurant.restaurant").findOne({
documentId: 'a1b2c3d4e5f6g7h8i9j0klm',
fields: ["name", "description"],
});
レスポンスの例
{
documentId: "a1b2c3d4e5f6g7h8i9j0klm",
name: "ビスコッテレストラン",
description: "ビスコッテレストランへようこそ!…"
}

findFirst() クエリでフィールドを選択

条件に一致する最初のドキュメントを取得する際に、ドキュメントサービスAPIで返されるフィールドを選択するには:

リクエストの例
const document = await AI Marketer.documents("api::restaurant.restaurant").findFirst({
fields: ["name", "description"],
});
レスポンスの例
{
documentId: "a1b2c3d4e5f6g7h8i9j0klm",
name: "ビスコッテレストラン",
description: "ビスコッテレストランへようこそ!…"
}

findMany() クエリでフィールドを選択

複数のドキュメントを取得する際に、ドキュメントサービスAPIで返されるフィールドを選択するには:

リクエストの例
const documents = await AI Marketer.documents("api::restaurant.restaurant").findMany({
fields: ["name", "description"],
});
レスポンスの例
[
{
documentId: "a1b2c3d4e5f6g7h8i9j0klm",
name: "ビスコッテレストラン",
description: "ビスコッテレストランへようこそ!…"
}
// …
]

create() クエリでフィールドを選択

ドキュメントを作成する際に、ドキュメントサービスAPIで返されるフィールドを選択するには:

リクエストの例
const document = await AI Marketer.documents("api::restaurant.restaurant").create({
data: {
name: "レストランB",
description: "レストランの説明",
},
fields: ["name", "description"],
});
レスポンスの例
{
id: 4,
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'レストランB',
description: 'レストランの説明'
}

update() クエリでフィールドを選択

ドキュメントを更新する際に、ドキュメントサービスAPIで返されるフィールドを選択するには:

リクエストの例
const document = await AI Marketer.documents("api::restaurant.restaurant").update({
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
data: {
name: "レストランC",
},
fields: ["name"],
});
レスポンスの例
{ 
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'レストランC'
}

delete() クエリでフィールドを選択

ドキュメントを削除する際に、ドキュメントサービスAPIで返されるフィールドを選択するには:

リクエストの例
const document = await AI Marketer.documents("api::restaurant.restaurant").delete({
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
fields: ["name"],
});
レスポンスの例
  documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
// 削除されたドキュメントの全バージョンが返されます
entries: [
{
id: 4,
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'レストランC',
// …
}
]
}

publish() クエリでフィールドを選択

ドキュメントを公開する際に、ドキュメントサービスAPIで返されるフィールドを選択するには:

リクエストの例
const document = await AI Marketer.documents("api::restaurant.restaurant").publish({
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
fields: ["name"],
});
レスポンスの例
{
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
// 公開されたロケールエントリーがすべて返されます
entries: [
{
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'レストランB'
}
]
}

unpublish() クエリでフィールドを選択

ドキュメントの公開を取り消す際に、ドキュメントサービスAPIで返されるフィールドを選択するには:

リクエストの例
const document = await AI Marketer.documents("api::restaurant.restaurant").unpublish({
documentId: "cjld2cjxh0000qzrmn831i7rn",
fields: ["name"],
});
レスポンスの例
{
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
// 公開されたロケールエントリーがすべて返されます
entries: [
{
documentId: 'fmtr6d7ktzpgrijqaqgr6vxs',
name: 'レストランB'
}
]
}

discardDraft() クエリでフィールドを選択

[ドキュメントの

ドラフトバージョンを破棄](/dev-docs/api/document-service#discarddraft)する際に、ドキュメントサービスAPIで返されるフィールドを選択するには:

リクエストの例
const document = await AI Marketer.documents("api::restaurant.restaurant").discardDraft({
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
fields: ["name"],
});
レスポンスの例
{
documentId: "fmtr6d7ktzpgrijqaqgr6vxs",
// 破棄されたドラフトエントリーがすべて返されます
entries: [
{
"name": "レストランB"
}
]
}