2017-02-24 49 views
0

我有一個mongo集合包含一些名稱值對的多個文檔。一次更新多個mongo文件從一個集合

MyCollection的:

{"_id" : 1,"name" : "name1","value" : "val1"} 

{"_id" : 2,"name" : "name2","value" : "val2"} 

{"_id" : 3,"name" : "name3","value" : "val3"} 

。 。 。 。 。 .100記錄

現在我想更新其中一些記錄的值。 我正在上傳一個Excel讀取值並存儲在HashMap中。現在我如何更新收集這些值?

+0

你可以發表一個例子嗎? –

+0

已更新問題 – ps007

+0

什麼是你想要更新它的條件,你想用java做 –

回答

0

你可以嘗試下面的東西。使用批量操作批量並將它們發送到服務器。

Map<String, String> namepair = new HashMap<>(); 
BulkWriteOperation bulkop = collection.initializeOrderedBulkOperation(); 
for(Map.Entry<String, String> name: namepair.entrySet()) { 
    bulkop.find(new BasicDBObject("name", name.getKey())) 
     .updateOne(new BasicDBObject("$set", new BasicDBObject("name",name.getValue()))); 
} 
BulkWriteResult result=bulkop.execute(); 
+0

mongo 3.2.2中仍然支持initializeOrderedBulkOperation? – ps007

+0

應該是。你有什麼錯誤嗎? – Veeram