관련포스팅 ↓
현재 위치→MongoDB 데이터 수정하기 (Update)
MongoDB 데이터 삭제하기 / DeleteMapping 사용해보기 (Delete)
이번에는 몽고DB 에 저장된 데이터를 SpringBoot 에서 수정 해보았다.
Update 과정에서는 오류는 발생하지 않아 작성한 코드만 리뷰를 적어보겠다.
RestController
@GetMapping("/update/{id}")
public Mongo update(@PathVariable String id , @RequestParam(value = "text1")String text1 ,@RequestParam(value = "text2")String text2 ){
Mongo mongo = this.mongService.getId(id);
Mongo updateMongo=this.mongService.update(mongo,text1,text2);
return updateMongo;
}
수정할 도큐먼트의 id를 @PathVariable 로 받고 해당 도큐먼트의 수정할 필드 값을 @RequestParam 으로 받아 수정을 진행했다.
받은 id 값은 서비스에서 findById 를 이용해 도큐먼트를 찾아서 가져왔다.
가져온 도큐먼트와 파라미터값으로 받았던 필드값들을 서비스의 수정메서드에 넣어 수정을 하고
수정된 도큐먼트를 반환하도록 작성하였다.
Service
public Mongo getId(String id){
try{
return this.mongoRepo.findById(id).get();
} catch (Exception e){
e.printStackTrace();;
throw new RuntimeException("가져오기 실패",e);
}
}
public Mongo update(Mongo mongo , String text1 , String text2){
mongo.setText1(text1);
mongo.setText2(text2);
this.mongoRepo.save(mongo);
return mongo;
}
이전 포스팅의 List를 Read 하는 부분에서 오류가 났었어서 이번에도
가져오기 쪽에 try catch 를 사용하여 혹시모를 오류에 예외처리를 추가했다.
반환받은 도큐먼트와 필드값을 Setter 를 이용하여 수정하고
레포에 저장한 후 수정된 도큐먼트를 반환하였다.
결과값
수정 후 반환받은 도큐먼트가 화면에 잘 나왔다
DB 에도 적용이 잘 되었다.