0

サイズが 16 MB を超える画像と PDF ファイルを格納するために、MongoDB ファイルとチャンクを使用しています。1 日の終わりにこのデータを消去する必要があります。

MongoDB には、TTL インデックスを使用してドキュメントを削除する機能が組み込まれていることがわかりました。ファイル コレクションの uploadDate 列を使用してその TTL インデックスを定義しました。それは完全に機能しており、ファイル コレクションからレコードを削除しています。しかし、チャンク コレクション内の関連するレコードが削除されずに残っていることが問題です。

別のオプションとして、チャンク コレクションに uploadDate フィールドを追加し、そこに TTL インデックスを定義することも考えましたが、それを実現する方法が見つかりませんでした。ファイル コレクションにメタデータ フィールドを追加できるようですが、チャンク コレクションでそれを行う方法が見つかりませんでした。

説明したもう 1 つのオプションは、Spring Boot マイクロサービスがあるため、Spring スケジューラを定義された間隔で呼び出し、delete() gridFS API を呼び出して期限切れのドキュメントを削除するサービス メソッドを呼び出すことができます。しかし、共通のデータベースを使用してこのマイクロサービスの複数のインスタンスを使用できるため、各インスタンスが同じことに対して独自のスケジューラ サービスを実行することになり、これは正しくないようです。

そのようなシナリオに遭遇し、これを達成することを知っているなら、それは私を助けます.

ありがとう

4

0 に答える 0