2d
Indexes
2차원 평면에서 점으로 저장된 데이터에는 2d
인덱스 를 사용합니다. 인덱스 2d
legacy coordinate pairs 는 MongoDB 2.2 및 이전 버전에서 사용되는 을 위한 것입니다.
다음과 같은 경우 2d
인덱스를 사용합니다.
데이터베이스에 MongoDB 2.2 이하의 레거시 legacy coordinate pairs 있고,
위치 데이터를 GeoJSON 객체로 저장하려는 것이 아닙니다.
지리 공간적 쿼리에 대한 자세한 내용은 지리 공간적 쿼리를 참조하세요 .
고려 사항
$geoNear
파이프라인 단계에 key
옵션을 지정하여 사용할 인덱싱된 필드 경로 를 나타낼 수 있습니다. 이렇게 하면 여러 인덱스 및/또는 여러 2dsphere 인덱스 가 있는 $geoNear
컬렉션 에서 단계를 사용할 수 2d
있습니다.
collection에 여러 개의
2d
인덱스 및 여러 개의 2dsphere 인덱스 가 있는 경우key
옵션을 사용하여 사용할 인덱싱된 필드 경로를 지정해야 합니다.key
지정하지 않으면key
이 없으면 여러2d
인덱스 또는2dsphere
인덱스 중에서 인덱스를 선택하는 것이 모호하므로 여러2d
인덱스 및 여러 2dsphere 인덱스 를 가질 수 없습니다.
참고
key
을 지정하지 않고 최대 하나의 2d
인덱스 및 하나 의 2dsphere 인덱스 만 있는 경우 MongoDB는 먼저 사용할 2d
인덱스를 찾습니다. 2d
인덱스가 없으면 MongoDB는 사용할 2dsphere
인덱스를 찾습니다.
위치 데이터에 GeoJSON 객체가 포함된 경우 2d
인덱스를 사용하지 마세요. 레거시 좌표 쌍 과 GeoJSON 객체 를 모두 인덱스하려면 2dsphere 인덱스를 사용합니다.
collection을 샤딩할 때는 2d
인덱스를 샤드 키로 사용할 수 없습니다. 그러나 다른 필드를 샤드 키로 사용하여 샤드 collection에 지리 공간적 인덱스를 생성할 수 있습니다.
행동
2d
인덱스는 평평한 유클리드 평면 에서의 계산을 지원합니다. 2d
인덱스는 구에서 거리 전용 계산도 지원합니다(예: $nearSphere
), 그러나 구의 기하학적 계산에 사용됩니다(예: $geoWithin
), 데이터를 GeoJSON 객체 로 저장하고 2dsphere
인덱스를 사용합니다.
2d
인덱스는 두 개의 필드를 참고할 수 있습니다. 첫 번째는 위치 필드여야 합니다. 2d
복합 인덱스는 위치 필드에서 먼저 선택한 다음 추가 기준에 따라 해당 결과를 필터링하는 쿼리를 구성합니다. 복합 2d
인덱스는 쿼리를 포함할 수 있습니다.
sparse
속성
2d
인덱스는 항상 sparse 하며 sparse 옵션을 무시합니다. 문서에 2d
인덱스 필드가 없는 경우(또는 필드가 null
또는 빈 배열인 경우) MongoDB는 문서에 대한 항목을 2d
인덱스에 추가하지 않습니다. 삽입의 경우 MongoDB는 문서를 삽입하지만 2d
인덱스에 추가하지는 않습니다.
다른 유형의 키와 함께 2d
인덱스 키를 포함하는 복합 인덱스의 경우, 2d
필드만이 인덱스가 문서를 참고하는지 여부를 결정합니다.
데이터 정렬 옵션
2d
인덱스는 단순 이진 비교만 지원하며 데이터 정렬 옵션은 지원하지 않습니다.
단순 데이터 정렬이 아닌 컬렉션에서 2d
인덱스를 만들려면 인덱스를 만들 때 {collation: {locale: "simple"}
}
을 명시적으로 지정해야 합니다.