在mongoDB中使用WriteConcern

时间:2017-10-09 17:35:44

标签: mongodb mongodb-query

我正在mongoDB wiki上阅读WriteConcern,但这对我来说并不清楚。我有个问题!它是什么以及什么时候我们必须使用WithWriteConcern(WriteConcern.Acknowledged)? 有什么区别:

WithWriteConcern(WriteConcern.Acknowledged).InsertOne()InsertOne()以及我们使用哪一个更好?   请解释一下。

1 个答案:

答案 0 :(得分:2)

说,写入问题是MongoDB的写操作规范,它确定了写操作发生后所需的确认。 MongoDB具有始终确认所有写入的默认写入问题,这意味着在每次写入之后,MongoDB必须始终返回确认(以文档的形式),这意味着它成功。当请求写入确认时,如果没有返回(在故障转移,崩溃的情况下),写入不成功。这种行为在副本集使用方面非常有用,因为您将拥有多个mongod实例,并且根据您的需要,您可能不希望所有实例都确认写入,只需几次,以加快写入速度。此外,何时指定写入问题,您可以指定日志写入,因此可以保证在发生故障转移时操作结果和所需的任何回滚。更多信息,here.

在您的情况下,它取决于您有多少mongod(如果您有副本集或只有一个服务器)实例。由于“始终确认”是默认设置,因此如果您必须管理副本集操作并加快速度或者不关心单个实例中的写入确认,则可能需要更改它(这不是很好,因为它是一个仅限单个服务器。)