gpt4 book ai didi

java - 可以将 mongodb writeconcern 设置为仅忽略重复键错误吗?

转载 作者:行者123 更新时间:2023-12-01 23:26:48 33 4
gpt4 key购买 nike

在插入 mongodb 时,我可以将 writeconcern 设置为仅忽略重复键错误吗?我想完全忽略这些错误,但如果出现其他问题,仍然会发现。我特别想知道我是否失去了与数据库的连接或者 mongod 本身是否崩溃了。 (我在研究网络上,所以这两件事并不总是最可靠的。)

我看到的 writeconcern 似乎接近未确认,但我不明白它到底会捕获什么以及会忽略什么。

我的应用程序是用 Java 编写的,使用 mongo 驱动程序版本 2.10.1 并使用 mongo 版本 2.4.6

我避免使用默认的 writeconcern 并简单地捕获异常,因为我不想要异常开销。我预计重复 key 的数量会很高。这是一个愚蠢的担忧吗?

最佳答案

关于WriteConcern的官方文档显示 WriteConcern 设置有哪些选项。

WriteConcern.UNACKNOWLEDGED ({w:0,j:0,fsync:0}) 将报告网络错误,因此您已经解决了这个问题。当数据库崩溃时,与它的连接会立即中断(当操作系统仍在运行时)或在几秒钟内超时(当整个操作系统甚至物理服务器崩溃时),所以你也应该很快注意到.

下一个最佳 WriteConcern({w:1,j:0,fsync:0}WriteConcern.SAFE)等待副本主节点的确认-set,这样就会报 主键 唯一索引错误。

当有一个设置可以让服务器在收到数据后但在解释数据之前做出响应时,速度不会快得多。验证 BSON 语法通常很便宜,而检查任何唯一索引中的冲突也没有那么昂贵。至少与网络往返时间相比。

当您担心 Java 中捕获异常的性能时:Java 中的异常处理也不昂贵。

关于java - 可以将 mongodb writeconcern 设置为仅忽略重复键错误吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869759/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com