0

「参照データ」を含むMongoDB(v2.2.0)コレクションがあります。定期的に、そのコレクション内のすべてのドキュメントを外部ソースからのデータに置き換える必要があります。参照データが置き換えられている間は、コレクションに何もアクセスしないことが重要です。

別の名前で新しい(つまり「一時的な」)コレクションを作成し、データをロードしてから名前を変更するのが最善の解決策だと思いますか?

例えば:

  1. コレクションを作成するmyCollection-TEMP
  2. すべてのドキュメントを挿入into myCollection-TEMP
  3. 一時コレクションの名前を変更して、現在のコレクションを置き換えます(つまり、名前を変更する前に削除します)db.myCollection-TEMP.renameCollection('myCollection', true)

私の知る限り、コレクションを安全に「空」にし、ドキュメントの「一括インポート」を実行し、そのプロセスの途中で他に何もコレクションにアクセスしないようにする方法はありません。

4

1 に答える 1

1

はい、一時的なコレクションを作成してから名前を変更するのが良い方法です。これは、他のテクノロジーでも一般的なアプローチです。たとえば、コンピュータグラフィックスのダブルバッファリング。見えない背景面にフレームを用意し、それを画面と交換するだけです。これにより、ちらつきやその他のアーティファクトなしで画像が即座に更新されます。

于 2012-10-11T23:02:31.690 に答える