繁体   English   中英

使用Spring更新Mongo Db中的数据(MongoTemplate)

[英]Update data in mongo Db using spring (MongoTemplate)

我有一个集合(A),该集合在mongoDB中具有两个字段(字符串,整数)。 我想通过添加一些值来更新集合

例如 假设我有一个文档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'
}

该代码可以正常工作并具有预期的结果,但是性能非常慢。 还有其他有效的方法吗?

我正在处理大量数据以进行更新。

我建议您结合upsert = true功能使用findAndModify()方法。 请在下面找到官方文档:

https://docs.mongodb.org/manual/reference/method/db.collection.findAndModify/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM