私はMongoDBのC#のドライバで、セーフモードを使用するにはどうすればよいです
-
25-09-2019 - |
質問
私は、公式のMongoDB C#ドライバの使用SafeMode
とリターンSafeModeResult
のいくつかの方法ことがわかりました。このSafeMode
とどのように私はそれを使用しないとは何ですか?いくつかのユースケースを見ることは素晴らしいことだ - 。例えば、RemoveAll
のMongoCollection
方法とユースケースを
解決
セーフモードでのみ有効です。
セーフモードがオフになっていると、書き込み動作がドライバーを失敗した場合、スピードに関しては、ケアに周りに待機しません。正味の効果は、例外がスローされません取得し、あなたがエラーを持っているかわからないです。
セーフモードは、成功の確認を待つためにドライバを強制的にONに設定し、エラーが発生した場合に例外をスローします。
を使用します(ユーザアカウント、注文など)を気にしたデータのためにセーフモード。
必須ではないデータ(ログ、使用統計情報など)のためにセーフモードを使用しないでください。
のMongoDBのデフォルトの動作は、セーフモードをオフにすることです。
他のヒント
ドキュメントでから:
セーフモードの様々なレベルがあり、 このクラスは、表現するために使用されます それらのレベル。セーフモードでのみに適用されます まだ返さない操作 値(それはクエリには適用されませんので、 またはコマンド)。それはに適用されます MongoCollectionのメソッドを次のとおりです。 挿入、削除、保存して更新します。
セーフモードの要旨は、ということであるAN後 挿入、削除、保存または更新メッセージ それが続いているサーバーに送信されます これにGetLastErrorコマンドによる ドライバは、その動作を確認することができます 成功しました。また、使用している場合 レプリカセットには、検証することが可能です 情報があったこと いくつかの最小数に複製 セカンダリサーバます。
セーフモードクラスには、静的を持っています あなたを聞かせてプロパティとメソッド 簡単に共通のモードにアクセスするか、または作成 あなた自身ます:
* SafeMode.False * SafeMode.True * SafeMode.WaitForReplications(int n)
「N」の値は、 主なので、一般的にあなたがしたいのn> = 2ます。
私は、これがセーフモードの目的を理解するのに十分であると思います。
SafeMode
は時代遅れのように見える。
当量 WriteConcern.Acknowledged のMongoClientSettings
に(典型的には渡されMongoClient
コンストラクタへ)。定評デフォルトWriteConcernドライバ(2.2.4)の現在のバージョンである。
も参照してください。 MongoDBのセーフモードWriteConcernする
と比較