【问题标题】:c# mongodb driver write concern时间:2019-04-10 标签:c#mongodb driver write concern
【发布时间】:2013-06-23 14:14:49
【问题描述】:

我的 Web 服务写入 mongodb,我注意到在负载下,写入失败了很多。 Reading this documentation 我看到默认情况下设置设置为“确认”并读取this post 似乎我需要将其设置为更高的设置(安全模式 - 似乎已被弃用)。所以我的问题是,我应该如何初始化我的 mongodb,以便我的 Web 服务将“始终”写入数据库(或尝试抛出错误)并且不会失败(假设它可以写入 :))

据我了解,我需要设置“写入关注点”,但不清楚如何将其设置为“确保成功写入数据库”

我现在用来检索数据库的代码是:

MongoClient client = new MongoClient(connection_string);
var server = client.GetServer();
Database = _db = server.GetDatabase(dbname);

【问题讨论】:

  • “写入失败很多”?怎么样?
  • "safe" == "acknowledged" - 术语已更改,当前默认值正是 SAFE 之前的意思,正如 Derick 所说。您需要提供更多信息,因为问题似乎可能是其他问题(因此需要不同的解决方案)。
  • Acknowledged 应该抛出无法写入数据库的错误,但查看日志我发现所有请求都正常。我应该看看一些结果,如果不成功再试一次??

标签: c# mongodb mongodb-.net-driver safe-mode


【解决方案1】:

您的连接字符串需要为此设置 w=1 选项,这是驱动程序更高版本中的默认设置。这在连接字符串中如下所示:

mongodb://localhost/?w=1

但这是默认设置。

您写道“写入失败很多”-您怎么看?是因为文档不在数据库中,还是因为出现错误?告诉我,我会更新答案。

【讨论】:

  • 我发送了数千个相同的请求,他们都得到了 200 个响应(没有引发错误)。每个请求写入数据库相同的数据 - 但成功写入的数量
  • MongoDB 不会发送“200”错误。你是如何向 MongoDB 发送东西的?
  • GetCollection().Save(entity);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-19
  • 2022-01-16
  • 2018-07-04
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 2013-05-26
相关资源
最近更新 更多