정의
$strcasecmp
두 문자열의 대소문자를 구분하지 않고 비교를 수행합니다. 다음을 반환합니다.
첫 번째 문자열이 두 번째 문자열보다 "큰" 경우 1
두 문자열이 같으면 0
첫 번째 문자열이 두 번째 문자열보다 "작은" 경우 -1
$strcasecmp
의 구문은 다음과 같습니다:{ $strcasecmp: [ <expression1>, <expression2> ] } 인수는 문자열로 해석되는 한 유효한 표현식 일 수 있습니다. 표현식에 대한 자세한 내용은 표현식 연산자를 참조하세요.
행동
$strcasecmp
는 ASCII 문자의 문자열에 대해서만 잘 정의된 동작을 보유합니다.
대소문자를 구분하여 비교하려면 $cmp
를 참조하세요.
예시
다음 문서가 포함된 inventory
collection을 생각해 보세요.
db.inventory.insertMany( [ { _id: 1, item: "ABC1", quarter: "13Q1", description: "product 1" }, { _id: 2, item: "ABC2", quarter: "13Q4", description: "product 2" }, { _id: 3, item: "XYZ1", quarter: "14Q2", description: null } ] )
다음 작업은 $strcasecmp
연산자 를 사용하여 quarter
필드 값과 string "13q4"
의 대소문자를 구분하지 않고 비교를 수행합니다.
db.inventory.aggregate( [ { $project: { item: 1, comparisonResult: { $strcasecmp: [ "$quarter", "13q4" ] } } } ] )
이 연산은 다음과 같은 결과를 반환합니다.
{ _id: 1, item: "ABC1", comparisonResult: -1 } { _id: 2, item: "ABC2", comparisonResult: 0 } { _id: 3, item: "XYZ1", comparisonResult: 1 }