私はMongoDBのC#のドライバで、セーフモードを使用するにはどうすればよいです

StackOverflow https://stackoverflow.com/questions/4604868

  •  25-09-2019
  •  | 
  •  

質問

私は、公式のMongoDB C#ドライバの使用SafeModeとリターンSafeModeResultのいくつかの方法ことがわかりました。このSafeModeとどのように私はそれを使用しないとは何ですか?いくつかのユースケースを見ることは素晴らしいことだ - 。例えば、RemoveAllMongoCollection方法とユースケースを

役に立ちましたか?

解決

DBへの書き込み時に

セーフモードでのみ有効です。

セーフモードがオフになっていると、書き込み動作がドライバーを失敗した場合、スピードに関しては、ケアに周りに待機しません。正味の効果は、例外がスローされません取得し、あなたがエラーを持っているかわからないです。

セーフモードは、成功の確認を待つためにドライバを強制的に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する

と比較
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top