반갑습니다!
저번 포스트에서 기본 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이 있었습니다
다음 포스트에서 유용한 문법 나머지를 더 살펴보고,
도큐먼트 수정에 관련된 내용을 마무리하겠습니다 ^^