$not (애그리게이션)
정의
$not
부울을 평가하고 반대 부울 값을 반환합니다. 즉,
true
로 평가되는 표현식을 전달하면$not
이false
를 반환하고,false
로 평가되는 표현식을 전달하면$not
이true
를 반환합니다.$not
의 구문은 다음과 같습니다:{ $not: [ <expression> ] } 표현식에 대한 자세한 내용은 표현식을 참조하세요.
행동
false
부울 값 외에도 $not
는 null
, 0
, undefined
을 false
로 평가합니다. $not
는 0이 아닌 숫자 값과 배열을 포함하여 다른 모든 값을 true
로 평가합니다.
예제 | 결과 |
---|---|
{ $not: [ true ] } | false |
{ $not: [ [ false ] ] } | false |
{ $not: [ false ] } | true |
{ $not: [ null ] } | true |
{ $not: [ 0 ] } | true |
예제
다음 문서가 포함된 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 }
다음 연산은 $not
연산자를 사용해 qty
가 250
보다 크지 않은지 확인합니다.
db.inventory.aggregate( [ { $project: { item: 1, result: { $not: [ { $gt: [ "$qty", 250 ] } ] } } } ] )
이 연산은 다음과 같은 결과를 반환합니다.
{ "_id" : 1, "item" : "abc1", "result" : false } { "_id" : 2, "item" : "abc2", "result" : true } { "_id" : 3, "item" : "xyz1", "result" : true } { "_id" : 4, "item" : "VWZ1", "result" : false } { "_id" : 5, "item" : "VWZ2", "result" : true }