문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ /

지리 공간적 인덱스

이 페이지의 내용

  • 사용 사례
  • 시작하기
  • 세부 정보
  • 샤드 컬렉션
  • 지원되는 쿼리
  • 구형 쿼리
  • 자세히 알아보기

지리 공간적 인덱스는 GeoJSON 객체 또는 레거시 좌표 쌍 으로 저장된 데이터에 대한 쿼리를 지원합니다. 지리 공간적 인덱스를 사용하여 지리 공간적 데이터에 대한 쿼리 성능을 향상시키거나 특정 지리 공간적 쿼리를 실행할 수 있습니다.

MongoDB는 다음과 같이 두 가지 유형의 지리 공간적 인덱스를 제공합니다.

  • 2dsphere Indexes는 구의 형상을 해석하는 쿼리를 지원합니다.

  • 2d Indexes는 평평한 표면의 형상을 해석하는 쿼리를 지원합니다.

지리 공간적 데이터 및 쿼리 작업에 대해 자세히 알아보려면 지리 공간적 쿼리를 참조하세요.

애플리케이션에서 지리 공간적 데이터가 포함된 필드를 자주 쿼리하는 경우, 지리 공간적 인덱스를 만들어 해당 쿼리의 성능을 개선할 수 있습니다.

특정 쿼리 작업에는 지리 공간적 인덱스가 필요합니다. 2} 또는 $nearSphere 연산자 또는 $near 집계 단계로 쿼리하려면 $geoNear 지리 공간적 인덱스를 만들어야 합니다. 자세한 내용은 지리 공간적 쿼리 연산자지리 공간적 집계 단계를참조하세요.

예를 들어 도시의 지하철역 좌표를 지정하는 location 필드가 포함된 문서가 포함된 subway 컬렉션을 생각해 보십시오. $geoWithin 연산자로 쿼리를 실행하여 특정 지역 내의 방송국 목록을 반환하는 경우가 많습니다. 이 쿼리의 성능을 향상시키려면 location 필드에 지리 공간적 인덱스를 생성할 수 있습니다. 인덱스를 생성한 후 $near 연산자를 사용하여 쿼리하면 가까운 역부터 먼 역까지 정렬된 주변 역 목록을 반환할 수 있습니다.

일반적으로 쿼리되는 필드를 인덱싱하면 해당 쿼리를 처리할 가능성이 높아집니다. 포함된 쿼리는 문서를 검사하지 않고도 인덱스를 사용하여 완전히 충족할 수 있는 쿼리입니다. 이렇게 하면 쿼리 성능이 최적화됩니다.

지리 공간적 인덱스를 만들고 지리 공간적 쿼리를 실행하려면 다음을 참조하세요:

이 섹션에서는 지리 공간적 인덱스에 대한 자세한 내용을 설명합니다.

컬렉션을 샤딩할 때는 위치 기반 정보 인덱스를 샤드 키로 사용할 수 없습니다. 그러나 다른 필드를 분할 키로 사용하여 분할된 컬렉션에 지리 공간적 인덱스를 생성할 수 있습니다.

지리 공간적 쿼리 연산자집계 단계를 사용하여 샤드된 컬렉션의 지리 공간적 데이터를 쿼리할 수 있습니다.

MongoDB 4.0 이전 버전에서는 샤드된 컬렉션에 대해 $near$nearSphere 쿼리가 지원되지 않습니다. 대신 $geoNear 집계 단계 또는 geoNear 명령을 사용할 수 있습니다.

지리 공간적 인덱스는 쿼리를 처리할 수 없습니다.

구형 데이터에 대한 쿼리에 2d 인덱스를 사용하면 잘못된 결과 또는 오류가 반환될 수 있습니다. 예를 들어, 2d 인덱스는 극점을 감싸는 구형 쿼리를 지원하지 않습니다.

그러나 구형 쿼리 2차원 쿼리 모두에 2dsphere 인덱스을 사용할 수 있습니다. 2차원 쿼리의 경우 2dsphere 인덱스는 레거시 좌표 쌍으로 저장된 데이터를 GeoJSON 포인트 유형으로 변환합니다.

지리 공간적 쿼리 작업의 샘플은 지리 공간적 쿼리 예제를 참조하세요.

← 와일드카드 인덱스 제한