1
私のアプリケーションは、主にmongodb javaドライバ3.2.2を使用してmongodbに操作を挿入します。update/upsertを挿入するとduplicatekeyexceptionが発生する
時間の約90%を挿入しなければならない文書を受け取り、私のコレクションに2つの一意のキーインデックスが定義されています。重複要素を受け取ったときに、ドライバに依存していますDuplicateKeyExceptionを例外として投げてしまいました。私はその文書を更新したいと思っています。私のJavaコードは以下のようになります
{_id:{Object....},
name:"something", //unique key
rollNo:1232, //unique key combined with name
otherfields
}
:
マイドキュメントは、以下のようになります。
try{
dbCollections.insert(dbObject);
}catch(DuplicateKeyException e){
// since it is duplicate , lets just update it,
}
I正しい軌道上で次の質問
- アムIを持っていますか?私は、このアプローチで行くことで、ネットワークのラウンドトリップを減らそうとしています。
- 重複した要素の場合に受信しているデータは、元のデータと大きく異なる場合があり、どのフィールドが変更された可能性があるのか不明です。だから、私が選択しなければならない操作は、ここで少し混乱したアップデート/アップサートを選ぶべきか分からない。