【发布时间】:2013-11-09 09:22:32
【问题描述】:
在插入 mongodb 时,我可以将 writeconcern 设置为只会忽略 Duplicate Key 错误的内容吗?我想完全忽略这些错误,但如果出现其他问题,仍然可以捕获。我特别想知道我是否失去了与数据库的连接,或者 mongod 本身是否崩溃。 (我在研究网络上,所以这两件事并不总是最可靠的。)
我看到的似乎接近的 writeconcern 是 UNACKNOWLEDGED,但我不知道它究竟会捕获什么以及将忽略什么。
我的应用程序是用 Java 编写的,带有 2.10.1 版的 mongo 驱动程序和 2.4.6 版的 mongo
我避免使用默认的 writeconcern 并简单地捕获异常,因为我不想要异常开销。我预计重复键的数量会很高。这是一个愚蠢的担忧吗?
【问题讨论】:
-
你想要做的是捕捉错误但在你的应用程序中忽略它,我不相信这在 MongoDB 方面是可能的,我相信这样的事情是预优化
-
您的代码导致了如此多的重复键插入,以至于您担心在 Java 中引发异常的性能?哎呀。为什么会产生这么多重复?如果可以的话,最好避免将它们发送到服务器,方法是至少在客户端缓存一个大块的已知重复 ID。
-
@WiredPrairie 我正在做一些长时间的运行(例如,我从不关闭它)流处理,我得到的流(我无法控制)经常包含重复的对象。然而,问题在于确切的重复不会重复,因此没有任何“最常见”重复的概念。我可能会得到数千个独特的项目,所有这些我都已经看过了,但是几周或几个月内我不会再看到这些项目了。我对流处理和大数据还很陌生,因此欢迎您提供任何指示或建议。
-
@WiredPrairie 看来我可能高估了在 Java 中处理异常的成本。