SafeMode
公式の MongoDB C# ドライバーの一部のメソッドでは、と returnが使用されていることがわかりましたSafeModeResult
。これは何ですかSafeMode
、どうすれば使用できますか? いくつかのユース ケースを確認できれば幸いです。たとえば、 a のRemoveAll
メソッドを使用したユース ケースなどMongoCollection
です。
3 に答える
セーフモードは、データベースへの書き込み時にのみ関連します。
速度のために、セーフモードがオフで書き込み操作が失敗した場合、ドライバーは待機しません。最終的な効果は、例外がスローされず、エラーがあることを知らないことです。
セーフモードをオンに設定すると、ドライバーは成功の確認を待機するようになり、エラーが発生した場合は例外がスローされます。
重要なデータ (ユーザー アカウント、注文など) にはセーフモードを使用します。
重要ではないデータ (ログ、使用統計など) にはセーフモードを使用しないでください。
MongoDB のデフォルトの動作は、セーフモードをオフにすることです。
ドキュメントから:
SafeMode にはさまざまなレベルがあり、このクラスはそれらのレベルを表すために使用されます。SafeMode は、まだ値を返さない操作にのみ適用されます (したがって、クエリやコマンドには適用されません)。次の MongoCollection メソッドに適用されます: Insert、Remove、Save、および Update。
SafeMode の要点は、Insert、Remove、Save、または Update メッセージがサーバーに送信された後、その後に GetLastError コマンドが続くため、ドライバーは操作が成功したことを確認できます。さらに、レプリカ セットを使用すると、情報が最小限の数のセカンダリ サーバーに複製されていることを確認できます。
SafeMode クラスには、共通モードに簡単にアクセスしたり、独自のモードを作成したりできる静的プロパティとメソッドがあります。
* SafeMode.False * SafeMode.True * SafeMode.WaitForReplications(int n)
「n」の値にはプライマリが含まれるため、通常は n >= 2 が必要です。
SafeMode の目的を理解するには、これで十分だと思います。