strcasecmp(집계)
정의
$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
필드 값과 문자열 "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 }