Как обновить определенное поле в Монго БД с помощью интерфейса MongoRepository?
Как обновить определенное поле в коллекции mongo db с помощью интерфейса MongoRepository весной?
2 ответа
Я уверен, что вы уже получили ответ, все еще обновляя его, чтобы помочь другим людям.
Вы можете обновить определенное поле с помощью кода ниже.,
Query query1 = new Query(Criteria.where("id").is("123"));
Update update1 = new Update();
update1.set("available", false);
mongoTemplate.updateFirst(query1, update1, Customer.class);
На сегодняшний день вы не можете обновить документ с помощью MongoRepository
с помощью одного запроса. Если вы действительно хотите обновить конкретное поле, используяMongoRepository
то следующие шаги:
- Получите документ, который хотите обновить
- Установите новое значение в конкретное поле и сохраните этот документ.
Пример:
MyDocument myDocumentToUpdate = myDocumentRepository.findById(documentId); // fetching a document that you want to update the field
myDocumentToUpdate.setMyField(myNewValue); // setting the new value to the field myField
myDocumentRepository.save(myDocumentToUpdate); // saving (It basically updates the document) the updated document
Если вы хотите обновить определенное поле, используя MongoRepository, вы сначала можете загрузить объект:
Entity entity = repository.findById(1);
Затем измените значение свойства вашей сущности:
entity.setProperty("New value");
Наконец, если это несинхронизированный объект (если он синхронизируется, обновляется автоматически), сохраните его (он обновляет объект в базе данных, если его не существует):
repository.save(entity);
Это почти равно, как в JpaRepository
потому что оба расширяются CrudRepository
,