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

$in

이 페이지의 내용

  • 호환성
  • 구문
  • Atlas Search을 사용하여 Atlas에서 데이터 쿼리하기
  • 예시
  • $in 연산자를 사용하여 값 일치
  • $in 연산자를 사용하여 배열의 값 일치시키기
  • 정규식과 함께 $in 연산자 사용하기
$in

$in 연산자는 필드 값이 지정된 배열의 모든 값과 같은 문서를 선택합니다.

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

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

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

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

$in 표현식을 지정하려면 다음 프로토타입을 사용합니다.

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

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

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

$in 연산자는 각 매개 변수를 컬렉션의 각 문서와 비교하므로 성능 문제가 발생할 수 있습니다. 성능 향상을 위해:

  • 에 전달되는 매개 변수의 수를 제한하는 것이 좋습니다.
    $in 연산자를 수십 개의 값으로 변환합니다. 매개변수를 수백 개 이상 사용하면 쿼리 성능에 부정적인 영향을 미칠 수 있습니다.
  • 쿼리하려는 field에 인덱스를 만듭니다.

참고

이 문서에서는 $in 쿼리 연산자에 대해 설명합니다. $in 집계 연산자에 대해서는 $in(집계)을 참조하세요.

MongoDB Atlas에 저장된 데이터의 경우, $search 쿼리를 실행할 때 Atlas Search in 연산자를 사용할 수 있습니다. $search 후에 $in을(를) 실행하는 것은 in 연산자를 사용하여 $search을(를) 실행하는 것보다 성능이 떨어집니다.

이 연산자의 Atlas Search 버전에 대해 자세히 알아보려면 아틀라스 문서에서 in 연산자를 참조하세요.

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" ] }
] )

다음 예를 고려하십시오.

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

이 쿼리는 quantity 필드의 값이 5 또는 15인 inventory 컬렉션의 모든 문서를 선택합니다.

{ item: 'Erasers', quantity: 15, tags: [ 'school', 'home' ] },
{ item: 'Books', quantity: 5, tags: [ 'school', 'storage', 'home' ] }

$or 연산자를 사용하여 이 쿼리를 작성할 수 있지만 동일한 필드에 대해 동등성 검사를 수행할 때는 $or 연산자 대신 $in 연산자를 사용합니다.

다음 updateMany() 작업은 tags 배열에 "home" 또는 "school"과 일치하는 요소가 하나 이상 있는 경우 exclude 필드를 false로 설정합니다.

db.inventory.updateMany(
{ tags: { $in: [ "home", "school" ] } },
{ $set: { exclude: false } }
)

출력 예시:

{
item: 'Pens',
quantity: 350,
tags: [ 'school', 'office' ],
exclude: false
},
{
item: 'Erasers',
quantity: 15,
tags: [ 'school', 'home' ],
exclude: false
},
{
item: 'Books',
quantity: 5,
tags: [ 'school', 'storage', 'home' ],
exclude: false
}

배열 쿼리에 대한 추가 예시는 다음을 참조하세요.

쿼리에 대한 추가 예는 쿼리 문서를 참조하세요.

$in 연산자는 /pattern/ 형식의 정규식을 사용하여 일치하는 값을 지정할 수 있습니다. $in 내에서는 $regex 연산자 표현식을 사용할 수 없습니다.

다음 예를 고려하십시오.

db.inventory.find( { tags: { $in: [ /^be/, /^st/ ] } } )

이 쿼리는 tags 필드에 be 또는 st로 시작하는 문자열이나 be 또는 st로 시작하는 요소가 하나 이상 있는 배열이 있는 inventory collection 의 모든 문서를 선택합니다.

다음도 참조하세요.

돌아가기

$gte