2017-04-12 3 views
1

私は自分のコレクションを原子的に再構築したいと思っています。これは、既存のすべての文書を削除し、最初からそれを取り込むことを意味します。 トランザクションはサポートされていないので、コレクションが空であるという小さな時間差があります。これは避けたいものです。pymongoでのコレクションの再構築

このような操作をアトミックに行う方法はありますか?コレクションが空であるという点はありませんか?

答えて

1

別の名前で新しいコレクションを作成し、renameコマンドを使用して新しいコレクションの名前を変更し、既存のコレクションを削除することができます(dropTarget=Trueオプションを使用)。コマンドは は、現在のデータを返しているクエリを中断オープン・カーソルが無効になります

  • はかかわらず、いくつかの注意点があります。

  • renameCollectionは、操作の間、すべてのデータベース活動をブロックします。
  • renameCollectionは、断片化されたコレクションと互換性がありません。
  • renameCollection操作が完了しない場合、ターゲットコレクションとインデックスは使用できなくなり、手動で操作してクリーンアップする必要があります。

さらに詳しい情報はofficial docsにあります。

+0

ありがとう、それは私を助けました。 –

関連する問題