Как обновить определенное поле в Монго БД с помощью интерфейса 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 то следующие шаги:

  1. Получите документ, который хотите обновить
  2. Установите новое значение в конкретное поле и сохраните этот документ.

Пример:

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,

Другие вопросы по тегам