コレクションの ttl を1 回設定したいのですが、mongoDB を使用する Java アプリケーションを構築するときにこれを実現する慣用的な方法は何ですか? ppl はシェルでこれらの設定を適用するだけですか? または、アプリケーション コードでは、コレクションが既に DB にあるかどうかを確認するのが普通ですか?そうでない場合は、必要なオプションで作成しますか?
ありがとう!
アプリケーション コードでインデックスを作成することはもうありません。
私はかつてそうであったことを告白します。アプリケーションが起動するたびにすべてのインデックスを確認していましたが、ある日突然、初心者の開発者が私のコードを手に入れ、誤ってインデックス シーケンスの 1 文字を削除してしまいました。
その結果、フォアグラウンドでのこのインデックス構築の処理により、クラスタ全体がフリーズしてダウンしました。幸運なことに、私は多くの遅延した非インデックス ビルド スレーブを修理する必要がありましたが、それでも、全体で約 12 時間、さらに 12 時間の業務を失いました。
アプリケーション コードでインデックスを作成するのではなく、mongo
コンソール内で慎重に作成することをお勧めします。これは、TTL インデックス作成であっても、このような操作に当てはまります。
ここに記載されているように、コレクションに TTL を設定できます。
Java ドライバーを使用して、次のことを試みます。
theTTLCollection.ensureIndex(new BasicDBObject("status", 1), new BasicDBObject("expireAfterSeconds", 3600));
h番目。