ホームページ  >  記事  >  バックエンド開発  >  Golang を使用して MongoDB 内のドキュメントを自動的に期限切れにするにはどうすればよいですか?

Golang を使用して MongoDB 内のドキュメントを自動的に期限切れにするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 15:39:26320ブラウズ

How can I automatically expire documents in MongoDB using Golang?

Golang で MongoDB を使用する: 指定された期間後にドキュメントを自動的に期限切れにする

MongoDB コレクションにデータを保存する場合、次のことが望ましい場合があります。ドキュメントの有効期限を設定し、事前定義された間隔の後にドキュメントが自動的に削除されるようにします。この機能により、手動による削除の必要性がなくなり、データベース内の混乱が防止されるため、データ管理が強化されます。

Go では、mongo-go-driver を利用して、ドキュメントの TTL (存続期間) を簡単に設定できます。方法は次のとおりです:

1. ExpireAfterSeconds オプションを使用してインデックスを作成する:

有効期限を表すフィールドに、expireAfterSeconds オプションを使用したインデックスを作成する必要があります。これは、ドキュメントが削除の対象となるまでの期間を秒単位で指定します。例:

<code class="go">model := mongo.IndexModel{
    Keys:    bson.M{"createdAt": 1},
    Options: options.Index().SetExpireAfterSeconds(1),
}</code>

2.ドキュメントの挿入:

インデックスが確立されると、必要な createdAt タイムスタンプを持つドキュメントを挿入できます。このタイムスタンプは、有効期限が計算される基準点として機能します。

3.有効期限の監視:

mongo-go-driver は、ドキュメントの削除を即時に確認しません。これは、期限切れのドキュメントを削除するバックグラウンド タスクの非同期の性質によるものです。 MongoDB は、このタスクが 60 秒ごとに実行されると述べています。これは、期限切れのドキュメントが削除されるまで最大 60 秒間存続する可能性があることを意味します。

注:expireAfterSeconds を使用して指定された有効期限は、createdAt を基準にしています。分野。ドキュメントは、作成されてから指定された期間が経過すると削除できるようになります。 MongoDB インスタンスのワークロードに応じて、実際の削除は少し遅れて行われる可能性があります。

以上がGolang を使用して MongoDB 内のドキュメントを自動的に期限切れにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。