문서 홈 → 애플리케이션 개발 → MongoDB 매뉴얼
$min
정의
행동
MongoDB 5.0부터 업데이트 연산자는 문자열 기반 이름이 있는 문서 필드를 사전순으로 처리합니다. 숫자 이름이 있는 필드는 숫자 순서대로 처리됩니다. 자세한 내용은 업데이트 운영자 동작을 참조하십시오.
필드가 존재하지 않는 경우 $min
연산자는 필드를 지정된 값으로 설정합니다.
숫자와 null과 같이 서로 다른 유형의 값을 비교하기 위해 $min
은 BSON 비교 순서를 사용합니다.
MongoDB 5 부터 시작.0, mongod
는 빈 피연산자 표현식( { }
)과 함께 $min
과 같은 업데이트 연산자를 사용할 때 더 이상 오류를 발생시키지 않습니다. 빈 업데이트는 변경 사항이 없으며 oplog 항목이 생성되지 않습니다(즉, 작업이 작동하지 않음을 의미합니다).
예제
$min
를 사용하여 숫자 비교
scores
컬렉션을 생성합니다.
db.scores.insertOne( { _id: 1, highScore: 800, lowScore: 200 } )
lowScore
문서의 의 현재 값은 200
입니다. 다음 작업은 를 $min
사용하여 200
150
를 지정된 값 과 lowScore
비교하고 150
가 150
보다 작으므로 의 값을 로 업데이트합니다.200
db.scores.updateOne( { _id: 1 }, { $min: { lowScore: 150 } } )
이제 scores
컬렉션에 다음과 같이 수정된 문서가 포함되어 있습니다.
{ _id: 1, highScore: 800, lowScore: 150 }
lowScore
필드의 현재 값, 즉 150
리 250
보다 작으므로 다음 작업은 효과가 없습니다.
db.scores.updateOne( { _id: 1 }, { $min: { lowScore: 250 } } )
문서가 scores
컬렉션에서 변경되지 않은 상태로 유지됩니다.
{ _id: 1, highScore: 800, lowScore: 150 }
$min
를 사용하여 날짜 비교
tags
컬렉션을 생성합니다.
db.tags.insertOne( { _id: 1, desc: "crafts", dateEntered: ISODate("2013-10-01T05:00:00Z"), dateExpired: ISODate("2013-10-01T16:38:16Z") } )
다음 작업은 dateEntered
필드의 현재 값인 ISODate("2013-10-01T05:00:00Z")
를 지정된 날짜 new Date("2013-09-25")
와 비교하여 필드 업데이트 여부를 결정합니다.
db.tags.updateOne( { _id: 1 }, { $min: { dateEntered: new Date("2013-09-25") } } )
이 작업은 dateEntered
필드를 업데이트합니다.
{ _id: 1, desc: "crafts", dateEntered: ISODate("2013-09-25T00:00:00Z"), dateExpired: ISODate("2013-10-01T16:38:16Z") }