15

How to update a particular field in mongo db collection by using MongoRepository Interface in spring?

Anil
  • 191
  • 1
  • 2
  • 11

2 Answers2

9

You can update specific field by below code:

Query query1 = new Query(Criteria.where("id").is("123"));
Update update1 = new Update();
update1.set("available", false);
mongoTemplate.updateFirst(query1, update1, Customer.class);
Tomerikoo
  • 18,379
  • 16
  • 47
  • 61
Ravi Mandli
  • 123
  • 1
  • 4
4

As of today, you can't update the document using MongoRepository using one query. If you really want to update a particular field using MongoRepository then following is the steps:

  1. Fetch the document that you want to update
  2. Set the new value to a particular field and save that document.

Example:

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
Yubaraj
  • 3,800
  • 7
  • 39
  • 57