【发布时间】:2016-03-21 05:35:35
【问题描述】:
我的应用程序主要使用 mongodb java driver 3.2.2 对 mongodb 进行插入操作。
大约 90% 的时间我会收到一个我必须插入的文档,并且我的集合中定义了两个唯一的键索引。有时当我收到一个重复的元素时,我依赖于驱动程序抛出我是一个异常 DuplicateKeyException,我知道我想更新文档。
我的文档如下所示:
{_id:{Object....},
name:"something", //unique key
rollNo:1232, //unique key combined with name
otherfields
}
我的 Java 代码如下所示。
try{
dbCollections.insert(dbObject);
}catch(DuplicateKeyException e){
// since it is duplicate , lets just update it,
}
我有以下问题
- 我在正确的轨道上吗?我正在尝试通过这种方法减少任何网络往返。
- 在重复元素的情况下接收的数据可能与原始数据有很大不同,并且不确定哪些字段可能已更改。所以我不确定我应该选择什么操作 update/upsert 这里有点困惑。
【问题讨论】: