0

大規模な挿入操作 (操作ごとに 1000 個のドキュメント) があり、コードの作業中に失敗する可能性があります。

ある種のスナップショットを作成したり、データベースにフラグを設定したりして、何か問題が発生した場合にデータベースをフラグ/スナップショットに戻すことはできますか?

4

2 に答える 2

1

MongoDB は意図的に ACID トランザクションをサポートしていませんが、ユース ケースに応じて独自のトランザクション セマンティクスを実装できます。

バッチ挿入の場合、簡単な方法は次のとおりです。

  • 挿入するドキュメントに一意のバッチ ID を持つフィールドを含める
  • 効率のためにMongoDB一括挿入メソッドを使用する
  • エラーが発生した場合は、失敗したバッチ ID のドキュメントを削除します (挿入にオール オア ナッシングが必要であると仮定します)。
于 2013-05-02T13:32:34.947 に答える
0

単純なフラグのように、これを行う簡単な方法はありません。あなたにとって最良の選択肢は、2フェーズコミットアプローチを実装することだと思います.ここでは、それを実装するための詳細な手順を参照してください: http://docs.mongodb.org/manual/tutorial/perform-two-phase-commits/

よろしく、 モアシー

于 2013-04-22T03:14:31.337 に答える