문서 메뉴

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

2d 인덱스

이 페이지의 내용

  • 고려 사항
  • 행동
  • sparse 속성
  • 데이터 정렬 옵션

2차원 평면에서 점으로 저장된 데이터에는 2d 인덱스를 사용합니다. 2d 인덱스는 MongoDB 2.2 이하에서 사용되는 레거시 좌표 쌍 을 위한 것입니다.

다음과 같은 경우 2d 인덱스를 사용합니다.

  • 데이터베이스에 MongoDB 2.2 이하의 레거시 legacy coordinate pairs 있고,

  • 위치 데이터를 GeoJSON 객체로 저장하려는 것이 아닙니다.

지리 공간적 쿼리에 대한 자세한 내용은 지리 공간적 쿼리를 참조하세요 .

MongoDB 4.0부터는 $geoNear 파이프라인 단계에 key 옵션을 지정하여 사용할 인덱싱된 필드 경로를 나타낼 수 있습니다. 이렇게 하면 여러 개의 $geoNear 인덱스 2d 및/또는 여러 개의 2dsphere 인덱스 가 있는 collection에서 단계를 사용할 수 있습니다.

  • collection에 여러 개의 2d 인덱스 및 여러 개의 2dsphere 인덱스 가 있는 경우 key 옵션을 사용하여 사용할 인덱싱된 필드 경로를 지정해야 합니다.

  • key 지정하지 않으면 key 이 없으면 여러 2d 인덱스 또는 2dsphere 인덱스 중에서 인덱스를 선택하는 것이 모호하므로 여러 2d 인덱스 및 여러 2dsphere 인덱스 를 가질 수 없습니다.

참고

key 을 지정하지 않고 최대 하나의 2d 인덱스 및 하나의 2d 인덱스 인덱스만 있는 경우 MongoDB는 먼저 사용할 2d 인덱스를 찾습니다. 2d 인덱스가 없으면 MongoDB는 사용할 2dsphere 인덱스를 찾습니다.

위치 데이터에 GeoJSON 객체가 포함된 경우 2d 인덱스를 사용하지 마세요. 레거시 좌표 쌍 GeoJSON 객체 를 모두 인덱스하려면 2dsphere 인덱스를 사용합니다.

collection을 샤딩할 때는 2d 인덱스를 샤드 키로 사용할 수 없습니다. 그러나 다른 필드를 샤드 키로 사용하여 샤드 collection에 지리 공간적 인덱스를 생성할 수 있습니다.

2d 인덱스는 평평한 유클리드 평면 에서의 계산을 지원합니다. 2d 인덱스는 구에서 거리 전용 계산도 지원합니다(예: $nearSphere), 그러나 구의 기하학적 계산에 사용됩니다(예: $geoWithin), 데이터를 GeoJSON 객체 로 저장하고 2dsphere 인덱스를 사용합니다.

2d 인덱스는 두 개의 필드를 참고할 수 있습니다. 첫 번째는 위치 필드여야 합니다. 2d 복합 인덱스는 위치 필드에서 먼저 선택한 다음 추가 기준에 따라 해당 결과를 필터링하는 쿼리를 구성합니다. 복합 2d 인덱스는 쿼리를 포함할 수 있습니다.

2d 인덱스는 항상 sparse 하며 sparse 옵션을 무시합니다. 문서에 2d 인덱스 필드가 없는 경우(또는 필드가 null 또는 빈 배열인 경우) MongoDB는 문서에 대한 항목을 2d 인덱스에 추가하지 않습니다. 삽입의 경우 MongoDB는 문서를 삽입하지만 2d 인덱스에 추가하지는 않습니다.

다른 유형의 키와 함께 2d 인덱스 키를 포함하는 복합 인덱스의 경우, 2d 필드만이 인덱스가 문서를 참고하는지 여부를 결정합니다.

2d 인덱스는 단순 이진 비교만 지원하며 데이터 정렬 옵션은 지원하지 않습니다.

단순 데이터 정렬이 아닌 컬렉션에서 2d 인덱스를 만들려면 인덱스를 만들 때 {collation: {locale: "simple"} } 을 명시적으로 지정해야 합니다.

← 2dsphere 인덱스 쿼리