У меня есть коллекция (A), которая имеет два поля (String, integer) в mongoDB. Я хочу обновить коллекцию, добавив некоторое значение в stingОбновить данные в 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 отлично с ожидаемыми результатами, но производительность очень медленно. Есть ли другой эффективный способ для этого.
Я работаю над большим объемом данных для обновления.
Этот метод обыкновение позвольте мне обновлять на существующей стоимости. Есть ли способ сделать это? –
Что это значит? В спецификации указано: «Изменяет и возвращает один документ» –