...
필드 수정 연산자
다큐먼트의 필드를 수정하는 연산자들입니다.
제일 많이 쓰이는 연산자이기 때문에 꼭 알아둘 필요가 있습니다.
$inc
- 필드 값을 증가시키거나 감소시키는 연산자입니다.
- 양수면 증가, 음수면 감소입니다.
{ $inc: { 필드: 1 } } // 필드의 값을 1 증가
$mul
- 필드 값에 곱하는 연산자입니다.
- 1보다 큰 수를 곱하면 커지고, 1보다 작은 수를 곱하면 작아집니다.
- 쿼리의 순서에 조심하세요. $inc는 필드 안의 속성이었다면, 이번에는 필드가 $mul 안의 속성입니다.
{ $mul: { 필드: 2 } } // 필드의 값을 두배 증가
$rename
- 필드 이름을 바꾸는 연산자입니다.
- 여러 필드를 동시에 교체할 수 있습니다.
{ $rename: { 필드1: 이름, 필드2: 이름, ... } }
$set
- 해당 필드 값을 다른 것으로 교체합니다.
- 주로 Update문과 같이 쓰입니다.
{ $set: { 필드1: 값, 필드2: 값, ... } }
$setOnInsert
- $set과 비슷한데 upsert(update + insert)의 경우에만 작동합니다.
- 만약 upsert가 일어나지 않으면 아무 동작도 하지 않습니다.
{ $setOnInsert: { 필드1: 값, 필드2: 값, ... } }
$unset
- 해당 필드를 제거합니다.
- 만약 배열의 요소를 $unset한 경우에는 제거하진 않고 null로 교체합니다.
{ $unset: { 필드1: '', 필드2: '', ... } }
$min
- 필드의 값이 주어진 값보다 클 경우 새 값으로 교체합니다.
- 만약 원래 값이 200이었고 $min의 값이 150이었다면 150으로 바뀝니다.
- 기존 기록을 경신하는 경우 사용됩니다.
{ $min: { 필드1: 값, 필드2: 값, ... } }
$max
- 필드의 값이 주어진 값보다 작을 경우 새 값으로 교체합니다.
- 만약 원래 값이 800이었고 $max의 값이 950이라면, 950으로 바뀝니다.
- 기존 기록을 경신하는 경우 사용됩니다.
{ $max: { 필드1: 값, 필드2: 값, ... } }
$currentDate
- 해당 필드 값을 현재 날짜로 교체합니다.
- 두 가지 타입의 현재 날짜가 있는데 하나는 기본적으로 쓰이는 Date이고 다른 하나는 Timestamp입니다.
- 기본 타입을 사용하려면 그냥 true하면 되고, timestamp 타입을 사용하려면 $type 연산자를 사용해야 합니다.
{ $currentDate: { 필드: true } }
{ $currentDate: { 필드: { $type: 'timestamp' } } }
Reference
https://www.zerocho.com/category/MongoDB/post/57a469bf7c4a5115004e97ea
인용한 부분에 있어 만일 누락된 출처가 있다면 반드시 알려주시면 감사하겠습니다
이 글이 좋으셨다면 구독 & 좋아요
여러분의 구독과 좋아요는
저자에게 큰 힘이 됩니다.