mongoDB 中 WriteConcern 的使用

say*_*res 3 mongodb mongodb-query

我正在WriteConcernmongoDB wiki 上阅读,但我不清楚。我有个问题!它是什么,何时必须使用WithWriteConcern(WriteConcern.Acknowledged)?有什么区别:

WithWriteConcern(WriteConcern.Acknowledged).InsertOne()InsertOne()哪一个是更好的,我们使用?请解释简单。

Vic*_*dre 5

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

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