$cmp (애그리게이션)
정의
$cmp
두 값을 비교하여 반환합니다:
-1
첫 번째 값이 두 번째 값보다 작은 경우1
첫 번째 값이 두 번째 값보다 큰 경우0
두 값이 같은 경우
$cmp
는 서로 다른 유형의 값에 대해 지정된 BSON 비교 순서 를 사용하여 값과 유형을 모두 비교합니다.$cmp
의 구문은 다음과 같습니다:{ $cmp: [ <expression1>, <expression2> ] } 표현식에 대한 자세한 내용은 표현식을 참조하세요 .
예제
다음 문서가 포함된 inventory
컬렉션을 생각해 보세요.
{ "_id" : 1, "item" : "abc1", description: "product 1", qty: 300 } { "_id" : 2, "item" : "abc2", description: "product 2", qty: 200 } { "_id" : 3, "item" : "xyz1", description: "product 3", qty: 250 } { "_id" : 4, "item" : "VWZ1", description: "product 4", qty: 300 } { "_id" : 5, "item" : "VWZ2", description: "product 5", qty: 180 }
다음 연산은 $cmp
연산자를 사용하여 qty
값을 250
과 비교합니다.
db.inventory.aggregate( [ { $project: { item: 1, qty: 1, cmpTo250: { $cmp: [ "$qty", 250 ] }, _id: 0 } } ] )
이 연산은 다음과 같은 결과를 반환합니다.
{ "item" : "abc1", "qty" : 300, "cmpTo250" : 1 } { "item" : "abc2", "qty" : 200, "cmpTo250" : -1 } { "item" : "xyz1", "qty" : 250, "cmpTo250" : 0 } { "item" : "VWZ1", "qty" : 300, "cmpTo250" : 1 } { "item" : "VWZ2", "qty" : 180, "cmpTo250" : -1 }