如何使用安全模式与MongoDB的C#驱动程序
-
25-09-2019 - |
题
我发现官方MongoDB的C#驱动程序使用SafeMode
和返回SafeModeResult
的一些方法。这是什么SafeMode
,如何使用它?这将是巨大看到一些用例 - 例如,用例与RemoveAll
的MongoCollection
方法
解决方案
安全模式仅是相关的。
有关的速度,如果安全模式是关闭的,一个写操作失败的驱动程序不等待来自于服务。最终的效果是不例外被抛出,你不知道你有一个错误。
安全模式设置为on会迫使驾驶员等待确认成功的,如果发生错误将抛出一个异常。
使用安全模式有关你所关心的数据(用户帐户,订单等)。
不使用安全模式对于不是必需的数据(记录,使用情况统计信息等)
MongoDB的默认行为是有安全模式关闭。
其他提示
从文档:
有各种水平的安全模式, 这个类用于表示 那些水平。安全模式只适用于 不已经返回操作 值(所以它并不适用于查询 或命令)。它适用于 以下MongoCollection方法: 插入,移除,保存并更新。
安全模式的要点是,一个后 插入,删除,保存或更新消息 被发送到它后面的服务器 由GetLastError函数指令以便 驾驶员可以验证操作 成功了。此外,当使用 副本集就可以验证 该信息已被 复制到某一最小数目的 辅助服务器。
在安全模式类有静态 这让你的属性和方法 轻松访问常用的模式或创建 主题:
* SafeMode.False * SafeMode.True * SafeMode.WaitForReplications(int n)
有“N”的值包括 伯,所以通常要N> = 2。
我希望这是不够了解安全模式的目的。
SafeMode
似乎是过时的。
等效是 WriteConcern.Acknowledged 上MongoClientSettings
(典型地通过到MongoClient
构造函数)。承认是在驱动器(2.2.4)的当前版本的默认WriteConcern。