필드 수정 연산자
다큐먼트의 필드를 수정하는 연산자들입니다.
제일 많이 쓰이는 연산자이기 때문에 꼭 알아둘 필요가 있습니다.
증감 연산자 : $inc
•
필드 값을 증가시키거나 감소시키는 연산자
•
양수면 증가, 음수면 감소
{ $inc: { 필드: 1 } } // 필드의 값을 1 증가
JSON
복사
곱 연산자 : $mul
•
필드 값에 곱하는 연산자
•
1보다 큰 수를 곱하면 커지고, 1보다 작은 수를 곱하면 작아짐
•
쿼리 순서 주의
{ $mul: { 필드: 2 } } // 필드의 값을 두배 증가
JSON
복사
이름 변경 연산자 : $rename
•
필드 이름 변경
•
여러 필드를 동시에 교체 가능
{ $rename: { 필드1: 이름, 필드2: 이름, ... } }
JSON
복사
필드 값 교체 연산자 : $set
•
해당 필드 값을 다른 것으로 교체
•
주로 Updte문과 같이 사용
{ $set: { 필드1: 값, 필드2: 값, ... } }
JSON
복사
upsert 연산자 : $setOnInsert
•
$set과 유사 upsert(update + insert)의 경우에만 작동
•
만약 upsert가 일어나지 않으면 아무 동작X
{ $setOnInsert: { 필드1: 값, 필드2: 값, ... } }
JSON
복사
필드 제거 연산자 : $unset
•
해당 필드 제거
•
만약 배열의 요소를 $unset한 경우에는 제거하진 않고 null 교체
{ $unset: { 필드1: '', 필드2: '', ... } }
JSON
복사
값 비교(작을 때) 후 값 교체 연산자 : $min
•
필드의 값이 주어진 값보다 클 경우 새 값으로 교체
•
기존 기록을 갱신하는 경우 사용
{ $min: { 필드1: 값, 필드2: 값, ... } }
JSON
복사
값 비교(클 때) 후 교체 연산자 : $max
•
필드의 값이 주어진 값보다 작을 경우 새 값으로 교체
•
기존 기록을 갱신하는 경우 사용
{ $max: { 필드1: 값, 필드2: 값, ... } }
JSON
복사
현재 날짜로 교체 연산자 : $currentDate
•
해당 필드 값을 현재 날짜로 교체
•
Date : 기본 Type - true
Timestamp : 유닉스 타임스탬프 - $type 연산자를 사용
{ $currentDate: { 필드: true } }
{ $currentDate: { 필드: { $type: 'timestamp' } } }
JSON
복사