1

headless-cms Strapi で特定の場合にエントリを削除する適切な方法は何ですか? 1 つのコンテンツ タイプが特定の値を取得する場合。

たとえば、日付に達した/期限切れになった場合などです。私の場合、イベント カレンダーを作成しました。タイトル、場所、日付など、いくつかのコンテンツ タイプがあります。各イベントは、イベントの日付に達すると自動的に消える必要があります。どうすればこれを達成できますか?

4

2 に答える 2

1

CRON タスクを使用することをお勧めします。この機能は Strapi で利用できます

ここにドキュメントhttps://strapi.io/documentation/3.0.0-beta.x/configurations/configurations.html#cron-tasksがあります。

したがって、ドキュメントに従ってCRONタスクを作成すると、関数で、CRON関数の実行日よりも古い日付のデータを取得する必要があります。

これを行うには、Query 関数を使用できます。

// Fetch data that have the `yourDateAttributeName_lt` lower than the now.
const data = await strapi.query('article').find({
  yourDateAttributeName_lt: new Date()
});

// Delete all entries fetched.
data.forEach((entry) => strapi.query('article').delete({
  id: entry.id
}));
于 2019-09-04T09:32:04.767 に答える
0

カスタムクエリについて読むことをお勧めします https://strapi.io/documentation/developer-docs/latest/development/backend-customization.html#custom-queries

たとえば、knex delete を使用すると、次のように簡単に削除できます。

await strapi.connections.default('emails').where('isSend', true).del();

定期的なタスクについては、CRON の使用方法を参照してください https://strapi.io/documentation/developer-docs/latest/guides/scheduled-publication.html

于 2021-11-08T15:45:57.733 に答える