1
私は自分のコレクションを原子的に再構築したいと思っています。これは、既存のすべての文書を削除し、最初からそれを取り込むことを意味します。 トランザクションはサポートされていないので、コレクションが空であるという小さな時間差があります。これは避けたいものです。pymongoでのコレクションの再構築
このような操作をアトミックに行う方法はありますか?コレクションが空であるという点はありませんか?
私は自分のコレクションを原子的に再構築したいと思っています。これは、既存のすべての文書を削除し、最初からそれを取り込むことを意味します。 トランザクションはサポートされていないので、コレクションが空であるという小さな時間差があります。これは避けたいものです。pymongoでのコレクションの再構築
このような操作をアトミックに行う方法はありますか?コレクションが空であるという点はありませんか?
別の名前で新しいコレクションを作成し、renameコマンドを使用して新しいコレクションの名前を変更し、既存のコレクションを削除することができます(dropTarget=True
オプションを使用)。コマンドは は、現在のデータを返しているクエリを中断オープン・カーソルが無効になります
はかかわらず、いくつかの注意点があります。
renameCollection
は、操作の間、すべてのデータベース活動をブロックします。renameCollection
は、断片化されたコレクションと互換性がありません。renameCollection
操作が完了しない場合、ターゲットコレクションとインデックスは使用できなくなり、手動で操作してクリーンアップする必要があります。さらに詳しい情報はofficial docsにあります。
ありがとう、それは私を助けました。 –