$nor
정의
예시
$nor
두 개의 표현식을 사용한 쿼리
$nor
연산자만 사용하는 다음 쿼리를 예로 들어 보겠습니다.
db.inventory.find( { $nor: [ { price: 1.99 }, { sale: true } ] } )
이 쿼리는 다음과 같은 모든 문서를 반환합니다.
값이
1.99
이 아닌price
필드를 포함하고true
이 아닌sale
필드를 포함하거나값이
1.99
과 같지 않은price
필드를 포함하지만sale
필드를 포함하지않거나
필드가
price
필드를 포함하지 않고sale
필드를 포함하지만값이
true
와 같지 않은경우 또는
price
필드 와sale
필드를 포함 하지 않는경우
$nor
및 추가 비교
다음 쿼리를 생각해 보세요.
db.inventory.find( { $nor: [ { price: 1.99 }, { qty: { $lt: 20 } }, { sale: true } ] } )
이 쿼리는 다음과 같은 inventory
collection의 모든 문서를 선택합니다.
price
필드 값이1.99
과(와) 같지 않고,또한
qty
필드 값이20
이상이며
sale
필드 값이true
과(와) 같지 않은 경우
이러한 필드를 포함하지 않는 문서를 포함합니다.
$nor
표현식에 필드를 포함하지 않는 문서를 반환할 때 예외는 $nor
연산자가 $exists
연산자와 함께 사용되는 경우입니다.
$nor
및 $exists
$nor
연산자와 $exists
연산자를 함께 사용하는 다음 쿼리와 비교해 보세요.
db.inventory.find( { $nor: [ { price: 1.99 }, { price: { $exists: false } }, { sale: true }, { sale: { $exists: false } } ] } )
이 쿼리는 다음과 같은 모든 문서를 반환합니다.
값이
1.99
와 같지 않은price
필드를 포함하고 값이true
와 같지 않은sale
필드를 포함합니다.
다음도 참조하세요.