Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / / /

$nin

이 페이지의 내용

  • 호환성
  • 구문
  • 예시
$nin

$nin 다음의 경우 문서를 선택합니다.

  • 지정된 필드 값이 지정된 배열에 없는 경우

  • 지정된 필드가 존재하지 않는 경우

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

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

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

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

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

{ field: { $nin: [ <value1>, <value2> ... <valueN> ] } }

field에 배열이 포함된 경우 $nin 연산자는 field에 지정된 배열의 값과 동일한 요소가 없는 배열이 포함된 문서를 선택합니다(예시: <value1>, <value2> 등).

다양한 BSON types 값을 비교하려면 지정된 BSON 비교순서를 참조하십시오.

inventory 컬렉션을 생성합니다.

db.inventory.insertMany( [
{ "item": "Pens", "quantity": 350, "tags": [ "school", "office" ] },
{ "item": "Erasers", "quantity": 15, "tags": [ "school", "home" ] },
{ "item": "Maps", "tags": [ "office", "storage" ] },
{ "item": "Books", "quantity": 5, "tags": [ "school", "storage", "home" ] }
] )

inventory 컬렉션에서 quantity가 5나 15와 같지 않은 같지 않은 모든 문서를 선택하는 쿼리입니다.

이 쿼리는 quantity 필드가 없는 문서와도 일치합니다.

db.inventory.find( { quantity: { $nin: [ 5, 15 ] } }, { _id: 0 } )

출력 예시:

{ item: 'Pens', quantity: 350, tags: [ 'school', 'office' ] },
{ item: 'Maps', tags: [ 'office', 'storage' ] }

"school" 태그가 없는 문서의 경우 exclude 필드를 true로 설정하세요.

db.inventory.updateMany(
{ tags: { $nin: [ "school" ] } },
{ $set: { exclude: true } }
)

updateMany()는 문서에 $nin과 일치하는 필드가 포함되어 있지 않은 경우에도 문서를 선택합니다.

부등식 연산자 $nin는 덱스의 많은 부분과 일치하는 경우가 많으므로 선택성이 그다지 높지 않습니다. 따라서 대부분의 경우 인덱스가 있는 $nin 쿼리는 컬렉션의 모든 문서를 스캔해야 하는 $nin 쿼리보다 성능이 좋지 않을 수 있습니다. 쿼리 선택성을 참조하세요.

다음도 참조하세요.

돌아가기

$ne

이 페이지의 내용