2d
인덱스 생성
이 페이지의 내용
지리 공간적 2d
인덱스 를 빌드 하려면 db.collection.createIndex()
메서드를 사용하고 2d
를 지정합니다. 다음 구문을 사용합니다.
db.<collection>.createIndex( { <location field> : "2d" , <additional field> : <value> } , { <index-specification options> } )
2d
인덱스는 다음과 같은 선택적 인덱스 사양 옵션을 사용합니다.
{ min : <lower bound> , max : <upper bound> , bits : <bit precision> }
인덱스의 위치 범위 2d
정의
기본적으로 2d
인덱스는 경도와 위도를 가정하며 경계가 -180( 포함 ) 및 180( 비포함)입니다. 문서에 지정된 범위를 벗어난 좌표 데이터가 포함되어 있으면 MongoDB는 오류를 반환합니다.
중요
기본 경계를 사용하면 애플리케이션에서 위도가 90보다 크거나 -90보다 작은 문서를 삽입할 수 있습니다. 이러한 유효하지 않은 점이 있는 지리 공간적 쿼리의 동작은 정의되어 있지 않습니다.
2d
인덱스에서 위치 범위를 변경할 수 있습니다.
기본값이 아닌 위치 범위를 사용하여 2d
지리 공간적 인덱스를 빌드할 수 있습니다. 인덱스를 생성할 때 min
및 max
옵션을 사용합니다. 다음 구문을 사용합니다.
db.collection.createIndex( { <location field> : "2d" } , { min : <lower bound> , max : <upper bound> } )
인덱스에 대한 위치 2d
정밀도 정의
기본적으로 legacy coordinate pairs의 2d
인덱스는 26비트 정밀도를 사용하며, 이는 -180~180의 기본 범위를 사용할 때 2 피트 또는 60 cm에 해당합니다. 정밀도는 위치 데이터를 저장하는 데 사용되는 geohash 값의 크기(비트)로 측정됩니다. 최대 32비트 정밀도로 지리 공간적 인덱스를 구성할 수 있습니다.
인덱스 정밀도는 쿼리 정확도에 영향을 주지 않습니다. 실제 그리드 좌표는 항상 최종 쿼리 처리에 사용됩니다. 정밀도가 낮을 때의 장점은 삽입 작업의 처리 오버헤드가 적고 공간을 덜 차지한다는 점입니다. 정밀도가 높을수록 얻을 수 있는 이점은 쿼리가 인덱스의 더 작은 부분을 스캔하여 결과를 반환한다는 점입니다.
기본값이 아닌 위치 정밀도를 구성하려면 인덱스를 생성할 때 bits
옵션을 사용합니다. 다음 구문을 사용합니다.
db.<collection>.createIndex( {<location field> : "<index type>"} , { bits : <bit precision> } )
geohash 값의 내부에 대한 자세한 내용 은 2d
인덱스에 대한 geohash 값 계산을 참조하세요.