![](/img/trans.png)
[英]How to update document in Mongo without loosing data in a Spring Mongotemplate project
[英]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.