Docs Menu
Docs Home
/ /

$not

$not

$not은 지정된 <operator-expression> 에 대해 논리적 NOT 작업을 수행하고 <operator-expression> 과 일치하지 않는 문서를 선택합니다. 여기에는 field가 없는 문서도 포함됩니다.

다음 환경에서 호스팅되는 배포에 $not 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

  • MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전

  • MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전

$not 연산자의 형식은 다음과 같습니다.

{ field: { $not: { <operator-expression> } } }

다음 예시 쿼리 살펴보겠습니다.

db.inventory.find( { price: { $not: { $gt: 1.99 } } } )

이 쿼리 inventory 컬렉션 에서 다음 조건 중 하나를 충족하는 모든 문서를 선택합니다.

  • price 필드 값이 1.99보다 작거나 같음

  • price 필드 값이 숫자가 아닌 경우

  • 필드 price 이 존재하지 않습니다.

{ $not: { $gt: 1.99 } } 연산자 와 다릅니다. 은 필드 있고 해당 값이 보다 작거나 $lte 같은{ $lte: 1.99 } 문서만 반환합니다.price 1.99

$not 연산자 다른 연산자 표현식 과 함께 사용합니다. 부등식 검사에 $not 을(를) 사용하려면 다음을 사용합니다.

{ price: { $not: { $eq: 1.99 } } }

앞의 쿼리는 다음을 반환합니다.

{ price: { $ne: 1.99 } }

다음 쿼리 연산자 없이 필드 비교하므로 유효하지 않습니다.

{ price: { $not: 1.99 } }

$not 연산자 배열 과 함께 사용하면 예기치 않은 결과가 발생할 수 있습니다. 여러 거짓 조건을 기반으로 문서를 일치시키려면 을 사용합니다.$nor

는 다음에$not 대한 논리적 연산을 지원합니다.NOT

  • 정규 표현식 객체(예: /pattern/).

    다음 쿼리 inventory 컬렉션 에서 item 필드 값이 문자 p로 시작하지 않는 문서를 선택합니다.

    db.inventory.find( { item: { $not: /^p.*/ } } )
  • $regex 연산자 표현식.

    예를 들어, 다음 쿼리는 item 필드 값이 p 문자로 시작하지 않는 inventory 컬렉션의 모든 문서를 선택합니다.

    db.inventory.find( { item: { $not: { $regex: "^p.*" } } } )
    db.inventory.find( { item: { $not: { $regex: /^p.*/ } } } )
  • 드라이버 언어 정규 표현식 객체.

    예를 들어 다음 PyMongo 쿼리는 Python의 re.compile() 메서드를 사용하여 정규 표현식을 컴파일합니다.

    import re
    for noMatch in db.inventory.find( { "item": { "$not": re.compile("^p.*") } } ):
    print noMatch

돌아가기

$nor

이 페이지의 내용