Java 是否可以将mongodb writeconcern设置为仅忽略重复的密钥错误?
在插入mongodb时,我可以将writeconcern设置为只忽略重复键错误的值吗?我想完全忽略这些错误,但如果出现其他错误,我仍然会发现。我特别想知道我是否失去了与数据库的连接,或者mongod本身是否崩溃了。(我在一个研究网络上,所以这两件事并不总是最可靠的。) 我看到的writeconcern似乎很接近,但还没有得到承认,但我不清楚它到底会捕获什么,什么会被忽略 我的应用程序是用Java编写的,mongo驱动程序版本为2.10.1,使用mongo版本2.4.6Java 是否可以将mongodb writeconcern设置为仅忽略重复的密钥错误?,java,mongodb,Java,Mongodb,在插入mongodb时,我可以将writeconcern设置为只忽略重复键错误的值吗?我想完全忽略这些错误,但如果出现其他错误,我仍然会发现。我特别想知道我是否失去了与数据库的连接,或者mongod本身是否崩溃了。(我在一个研究网络上,所以这两件事并不总是最可靠的。) 我看到的writeconcern似乎很接近,但还没有得到承认,但我不清楚它到底会捕获什么,什么会被忽略 我的应用程序是用Java编写的,mongo驱动程序版本为2.10.1,使用mongo版本2.4.6 我避免使用默认的write
我避免使用默认的writeconcern,而只是捕获异常,因为我不想要异常开销。我预计重复钥匙的数量会很高。这是一个愚蠢的问题吗?有关的官方文档显示了WriteConcern设置有哪些选项 未确认的
WriteConcern.UNACKNOWLEDGED
({w:0,j:0,fsync:0}
)将报告网络错误,因此您已经了解了这一点。当数据库崩溃时,与它的连接将立即中断(当操作系统仍在运行时)或在几秒钟后超时(当整个操作系统甚至物理服务器崩溃时),因此您也应该很快注意到这一点
下一个最佳writeccern({w:1,j:0,fsync:0}
,或writeccern.SAFE
)等待副本集的主键确认,因此它将报告主键唯一索引错误
如果有一个设置可以使服务器在收到数据后但在解释数据之前做出响应,那么速度不会快很多。验证BSON语法通常很便宜,检查任何唯一索引中的冲突也不会贵很多。至少与网络往返时间相比
当您担心在Java中捕获异常的性能时:Java中的异常处理也不昂贵。关于WriteConcern设置的官方文档显示了哪些选项 未确认的
WriteConcern.UNACKNOWLEDGED
({w:0,j:0,fsync:0}
)将报告网络错误,因此您已经了解了这一点。当数据库崩溃时,与它的连接将立即中断(当操作系统仍在运行时)或在几秒钟后超时(当整个操作系统甚至物理服务器崩溃时),因此您也应该很快注意到这一点
下一个最佳writeccern({w:1,j:0,fsync:0}
,或writeccern.SAFE
)等待副本集的主键确认,因此它将报告主键唯一索引错误
如果有一个设置可以使服务器在收到数据后但在解释数据之前做出响应,那么速度不会快很多。验证BSON语法通常很便宜,检查任何唯一索引中的冲突也不会贵很多。至少与网络往返时间相比
当您担心在Java中捕获异常的性能时:Java中的异常处理也不昂贵。关于WriteConcern设置的官方文档显示了哪些选项 未确认的
WriteConcern.UNACKNOWLEDGED
({w:0,j:0,fsync:0}
)将报告网络错误,因此您已经了解了这一点。当数据库崩溃时,与它的连接将立即中断(当操作系统仍在运行时)或在几秒钟后超时(当整个操作系统甚至物理服务器崩溃时),因此您也应该很快注意到这一点
下一个最佳writeccern({w:1,j:0,fsync:0}
,或writeccern.SAFE
)等待副本集的主键确认,因此它将报告主键唯一索引错误
如果有一个设置可以使服务器在收到数据后但在解释数据之前做出响应,那么速度不会快很多。验证BSON语法通常很便宜,检查任何唯一索引中的冲突也不会贵很多。至少与网络往返时间相比
当您担心在Java中捕获异常的性能时:Java中的异常处理也不昂贵。关于WriteConcern设置的官方文档显示了哪些选项 未确认的
WriteConcern.UNACKNOWLEDGED
({w:0,j:0,fsync:0}
)将报告网络错误,因此您已经了解了这一点。当数据库崩溃时,与它的连接将立即中断(当操作系统仍在运行时)或在几秒钟后超时(当整个操作系统甚至物理服务器崩溃时),因此您也应该很快注意到这一点
下一个最佳writeccern({w:1,j:0,fsync:0}
,或writeccern.SAFE
)等待副本集的主键确认,因此它将报告主键唯一索引错误
如果有一个设置可以使服务器在收到数据后但在解释数据之前做出响应,那么速度不会快很多。验证BSON语法通常很便宜,检查任何唯一索引中的冲突也不会贵很多。至少与网络往返时间相比
当您担心在Java中捕获异常的性能时:Java中的异常处理也不昂贵。您想做的是捕获错误,但在应用程序中忽略它,我不相信这在MongoDB端是可能的,我相信这样的事情是预优化。您的代码导致了如此多重复的密钥插入,以至于您担心在Java中引发异常的性能?哎呀。为什么会产生如此多的副本?如果可以的话,最好不要将它们发送到serv