2011-01-05 84 views
15

我發現官方MongoDB的C#驅動程序使用SafeMode的一些方法和返回SafeModeResult。這是什麼SafeMode以及如何使用它?這將是非常高興看到一些使用情況 - 例如,一個用例與MongoCollectionRemoveAll方法。如何使用安全模式與MongoDB的C#驅動

回答

29

安全模式纔有意義。

爲了提高速度,如果安全模式關閉且寫入操作失敗,驅動程序不會等待處理。淨效應並不是例外,你不知道你有錯誤。

將Safemode設置爲on將強制驅動程序等待成功確認,並且如果發生錯誤將會引發異常。

對您關心的數據(用戶帳戶,訂單等)使用安全模式。

不要使用安全模式,因爲這是沒有必要的數據(日誌,使用統計資料等)

MongoDB的默認行爲是有安全模式了。

+3

感謝您的使用;) – Edward83 2011-01-07 08:49:41

24

documentation

有安全模式, 的各種水平和此類用於表示 那些水平。安全模式只適用於 操作不已經返回 值(所以它不適用於查詢 或命令)。它適用於 以下MongoCollection方法: 插入,刪除,保存和更新。

安全模式的要點是,經過一個 插入,刪除,保存或更新消息 發送給它由GetLastError函數命令後面 服務器,以便 駕駛員可以驗證操作 成功。此外,在使用 複製品時設置它可以驗證 該信息已經 複製到的 輔助服務器一些最小數量。

的安全模式類有靜態 屬性和方法,讓你 輕鬆訪問常用的模式或創造 自己:

* SafeMode.False 
* SafeMode.True 
* SafeMode.WaitForReplications(int n) 

爲「N」包括 小學,所以通常你想n的值> = 2.

我希望這足以瞭解SafeMode的用途。寫入數據庫時​​