2016-01-22 64 views
0

我有一个在mongoDB中有两个字段(String,integer)的集合(A)。我想通过增加一些价值来更新收集使用spring更新mongo Db中的数据(MongoTemplate)

Ex。比方说,我有一个文件A [field1:ABC,field2:25]。我想通过添加5来更新它,所以它在更新后将看起来像A [field1:ABC,field2:30]。

我已经使用这个代码如下:

Query query = new Query(); 
query.addCriteria(Criteria.where("field1").is("ABC)); 
BeanName beanName = template.findOne(query, BeanName.class,collectionName); 
if(null != beanName){ 
    Update update = new Update(); 
    update.set("field1", "ABC"); 
    update.set("field2", beanName.getField2() + 5) 
    template.updateFirst(query, update, BeanName.class,collectionName); 
} 
else{ 
    template.save(beanName, collectionName); // the value of filed1 and field 2 is populated in a bean with instance 'beanName' 
} 

的代码woriking罚款与预期的结果,但性能非常缓慢。有没有其他有效的方法呢。

我正在处理大量的数据更新。

回答