본문 바로가기
MongoDB/MongoDB 기본 CRUD

[MongoDB 기본 CRUD] 13. 특정 필드 업데이트하기, 문서 replace하기, 특정 필드 제거하기

by Fletcher 2024. 8. 14.

 

반갑습니다!

 

저번 포스트에서 기본 CRUD 중 Update에 대해서 살펴보았습니다

몇 가지 예시를 알아보고 연습 문제를 풀어보았었는데요 ^^

 

이번에는 저번 포스트의 내용을 복습 하면서

추가로 도큐먼트 수정(갱신) 작업시 유용하게 사용할 수 있는

문법들에 대해서 알아보도록 하겠습니다

 

 

 

 

1. 특정 필드 업데이트하기 : $set

 

하나의 도큐먼트만 수정하기 위해서 updateOne() 함수를 사용했는데요

데이터 중에 어차피 name 필드의 값이 "민수"인 도큐먼트는 하나 뿐이기 때문에

그냥 updateMany() 함수를 사용해도 괜찮긴합니다 ^^

 

update() 함수 사용시 $set 키워드를 사용해서

어떤 필드의 값을 어떻게 바꿀 것인지 지정해주시면 되는데요!

update() 함수의 파라미터로 지정된 딕셔너리 타입 값 두 개 중에서

첫 번째는 조건 필터에 해당되고, 두 번째는 바꾸고자 하는 지정값이 되겠습니다 ^^

 

실제로 수정사항이 적용이 잘 되었는지 확인해볼까요?

 

 

 

해당 컬렉션에 대해 별도의 파라미터 지정 없이 find() 함수를 사용하면

전체 조회를 할 수 있는데요 ^^

전체 데이터를 살펴보니 name 컬럼이 민수인 도큐먼트의 age 값이 26으로

잘 변경되어 있는 것을 확인할 수 있겠습니다!

 

 

 

 

 

 

 

2. 문서를 replace하기

 

이번에는 해당 도큐먼트를 replace 해보겠습니다

사실 replace라고는 했지만 해당 도큐먼트의 모든 필드에 대해 값을 바꿔주면 되는 부분이기 때문에

방금 살펴본 특정 값 수정하기(바꾸기) 작업의 응용일 뿐입니다 ^^

 

name 필드의 값이 "재현"인 도큐먼트는

name, age, hobbies, address 네 개의 필드를 갖고 있습니다

마찬가지로 $set 키워드를 사용해서 이 필드들의 교체값을 지정해주시면 되겠습니다!

 

해당 수정 사항이 잘 반영되었는지 확인해볼까요?

 

 

 

마찬가지로 find() 함수를 이용하여 데이터를 조회하였습니다

해당 교체값들이 잘 반영 되어있는 것을 확인할 수 있겠습니다 ^^

 

 

 

 

 

 

 

 

3. 특정 필드를 제거하기

 

이번에는 특정 필드의 값을 변경하는 것이 아니라,

지정한 필드를 아예 없애보겠습니다

 

$unset 키워드를 사용하면 해당 도큐먼트의 특정 필드 값을 아예 지울 수 있는데요 ^^

특정 필드 선택은 상기 캡쳐 이미지와 같이 [필드명] : 1의 형태로 지정해주시면 되겠습니다!

 

마찬가지로 적용 사항을 한 번 확인해보겠습니다 ^^

 

 

 

전체 데이터를 조회해보니 name이 "민수"인 도큐먼트에 대해서

age 값이 없어진 것을 확인할 수 있겠습니다 ^^

 

 

 

 

 

 

이번 포스트는 update에 대한

기본적인 내용을 복습하고, 조금 응용한 정도였습니다 ^^

 

새로운 키워드라고 한다면 $unset이 있었습니다

 

다음 포스트에서 유용한 문법 나머지를 더 살펴보고,

도큐먼트 수정에 관련된 내용을 마무리하겠습니다 ^^