2017-02-24 51 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