如何将SafeMode与MongoDB C#驱动程序一起使用

Edw*_*d83 15 mongodb mongodb-.net-driver

我发现官方MongoDB C#驱动程序的一些方法使用SafeMode并返回SafeModeResult.这是什么SafeMode以及如何使用它?很高兴看到一些用例 - 例如,一个用例的RemoveAll方法MongoCollection.

sym*_*tri 29

Safemode仅在写入db时相关.

对于速度,如果安全模式关闭并且写入操作失败,则驱动程序不会等待关注.净效果是没有异常被抛出,你不知道你有错误.

Safemode设置为on将强制驱动程序等待成功确认,如果发生错误将引发异常.

对您关心的数据(用户帐户,订单等)使用安全模式.

不要将safemode用于非必要的数据(日志记录,使用统计等)

MongoDB的默认行为是关闭安全模式.


And*_*ich 24

来自文档:

SafeMode有各种级别,此类用于表示这些级别.SafeMode仅适用于尚未返回值的操作(因此它不适用于查询或命令).它适用于以下MongoCollection方法:插入,删除,保存和更新.

SafeMode的要点是,在将Insert,Remove,Save或Update消息发送到服务器之后,它将跟随GetLastError命令,以便驱动程序可以验证操作是否成功.此外,使用副本集时,可以验证信息是否已复制到某些最小数量的辅助服务器.

SafeMode类具有静态属性和方法,可让您轻松访问常用模式或创建自己的模式:

* SafeMode.False
* SafeMode.True
* SafeMode.WaitForReplications(int n)
Run Code Online (Sandbox Code Playgroud)

"n"的值包括主要值,因此通常需要n> = 2.

我希望这足以理解SafeMode的目的.