MongoDBで期限切れデータが自動的に削除される仕組み
TTL(Time To Live)インデックス機能を有効化することで、MongoDBでは一定時間経過後のドキュメントが自動削除されるようになります。
自動的に期限切れのデータを削除するための手順は以下のとおりです。
- 時限指定インデックスを作成する。インデックスを作成するときにフィールドと有効期限を指定する。MongoDB は時刻を超過したドキュメントを自動削除します。
db.collection.createIndex({ "expireAt": 1 }, { expireAfterSeconds: 0 })
ここで”expireAt”は、有効期限を格納するために使用され、expireAfterSecondsの値が0の場合、ドキュメントは有効期限に達した時点で削除されます。
- ドキュメントを挿入する際に、”expireAt”フィールドに有効期限を設定する。
db.collection.insertOne({ "data": "example", "expireAt": new Date() + 60 * 60 }) // 设置过期时间为当前时间的1小时后
这里的过期时间可以是一个具体的日期,也可以是相对于当前时间的秒数。
- MongoDBは自動的に期限切れのデータを削除します。有効期限が来ると関連するドキュメントが自動的に削除されます。
TTLインデックスはバックグラウンドスレッドによって定期的に期限切れのデータを自動削除することに注意してください、削除処理はリアルタイムではない可能性があります。またTTLインデックスは、日付または時間関連のフィールドのみに使用でき、他のタイプのフィールドには使用できません。
以上のステップがあなたのお役に立てば幸いです。