문서 메뉴

문서 홈애플리케이션 개발MongoDB 매뉴얼

$not

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 행동
$not

$not 은(는) 지정된 <operator-expression> 에 대해 논리적 NOT 연산을 수행하고 <operator-expression> 와 일치하지 않는 문서를 선택합니다. 여기에는 field 이 포함되지 않은 문서가 포함됩니다.

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

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

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

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

다음 예를 고려하십시오.

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

이 쿼리는 다음과 같은 inventory collection의 모든 문서를 선택합니다.

  • price 필드 값이 1.99 보다 작거나 같습니다.

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

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

$not 연산자는 다른 연산자에만 영향을 미치며 필드와 문서를 독립적으로 확인할 수 없다는 점을 기억합니다. 따라서 논리적 분리에는 $not 연산자를 사용하고 필드 내용을 직접 테스트하려면 $ne 연산자를 사용합니다.

$not 연산자의 연산은 다른 연산자의 동작과 일치하지만 배열과 같은 일부 데이터 유형에서는 예기치 않은 결과가 발생할 수 있습니다.

$not 연산자는 다음에 대해 논리적 NOT 연산을 수행할 수 있습니다.

  • 정규 표현식 개체(즉, /pattern/)

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

    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

다음도 참조하세요.

← $and
$nor →

이 페이지의 내용