2011-01-05 80 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的用途。写入数据库时​​