15

SafeMode公式の MongoDB C# ドライバーの一部のメソッドでは、と returnが使用されていることがわかりましたSafeModeResult。これは何ですかSafeMode、どうすれば使用できますか? いくつかのユース ケースを確認できれば幸いです。たとえば、 a のRemoveAllメソッドを使用したユース ケースなどMongoCollectionです。

4

3 に答える 3

29

セーフモードは、データベースへの書き込み時にのみ関連します。

速度のために、セーフモードがオフで書き込み操作が失敗した場合、ドライバーは待機しません。最終的な効果は、例外がスローされず、エラーがあることを知らないことです。

セーフモードをオンに設定すると、ドライバーは成功の確認を待機するようになり、エラーが発生した場合は例外がスローされます。

重要なデータ (ユーザー アカウント、注文など) にはセーフモードを使用します。

重要ではないデータ (ログ、使用統計など) にはセーフモードを使用しないでください。

MongoDB のデフォルトの動作は、セーフモードをオフにすることです。

于 2011-01-06T00:52:28.280 に答える
24

ドキュメントから:

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 の目的を理解するには、これで十分だと思います。

于 2011-01-05T14:20:31.240 に答える