1
我有一個要求,即多個客戶端正在同時寫入MongoDB。每個Mongo文檔都有自定義的version
字段。此外,我必須確保舊文檔不會覆蓋新文檔。每個寫入都完全取代了mongo文檔。當使用mongo java驅動程序滿足條件時替換mongo文檔3.0+
我替換文件的代碼看起來象下面這樣: - (在下面version
let'say的例子可以通過doc.getVersion()
獲得): -
MongoCollection<Document> productCollection = mongoDb.getCollection("test");
List<WriteModel<Document>> writes = new ArrayList<WriteModel<Document>>();
for (MongoInputDoc doc : docCollection) {
UpdateOptions updateOptions = new UpdateOptions();
updateOptions.upsert(true);
writes.add(new ReplaceOneModel<Document>(new Document(doc.getIdName(), new BsonString(doc.getIdValue())),
doc.getDoc(), updateOptions));
}
try {
if (writes.size() > 0) {
productCollection.bulkWrite(writes);
}
} catch (Exception e) {
System.out.println(e.getMessage())
}
有一個人可以讓我知道我怎麼可以添加版本檢查?