Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

$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 비교순서를 참조하십시오.

이 페이지의 예제에서는 sample_mflix 샘플 데이터 세트 의 데이터를 사용합니다. 이 데이터 세트를 자체 관리형 MongoDB deployment 에 로드하는 방법에 대한 자세한 내용은 샘플 데이터 세트 로드를 참조하세요. 샘플 데이터베이스를 수정한 경우 이 페이지의 예제를 실행 하려면 데이터베이스를 삭제하고 다시 만들어야 할 수 있습니다.

다음 예시 runtime 이(가) 1000 분보다 길고 rated 이(가) [ "G", "PG" ]에 없는 영화를 반환합니다. $ninrated 필드 포함하지 않는 문서와도 일치하므로 쿼리 평점 데이터를 사용할 수 없는 경우에도 영화를 반환합니다.

db.movies.find(
{ rated: { $nin: [ "G", "PG" ] }, runtime: { $gt: 1000 } },
{ _id: 0, title: 1, year: 1, rated: 1 }
)
[
{ title: 'Centennial', year: 1978 },
{
title: 'Baseball',
year: 1994,
rated: 'TV-PG'
}
]

다음 예시 genres 배열 에 "Drama" 이 없는 영화의 exclude 필드 true 로 설정합니다.

db.movies.updateMany(
{ genres: { $nin: [ "Drama" ] } },
{ $set: { exclude: true } }
)
{
acknowledged: true,
insertedId: null,
matchedCount: ...,
modifiedCount: ...,
upsertedCount: 0
}

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

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

돌아가기

$ne

이 페이지의 내용