2d 인덱스 에서 위치 정밀도는 인덱싱된 데이터를 저장 하는 데 사용되는 geohash 값의 크기(비트)로 정의됩니다. 기본값 으로 2d 인덱스는 26 비트의 정밀도를 사용하며, 이는 약 2 피트(60 센티미터)에 해당합니다.
위치 정밀도는 삽입 및 읽기 작업의 성능에 영향을 미칩니다.
기본 정밀도를 변경하려면 2D 인덱스를 생성할 때 bits 값을 지정합니다. 1에서 32 사이의 bits 값을 지정할 수 있습니다.
db.<collection>.createIndex( { <location field>: "2d" }, { bits: <bit precision> } )
이 작업에 대하여
위치 정밀도는 쿼리 성능에 영향을 미칩니다.
정밀도가 낮을수록 삽입 및 업데이트 작업의 성능이 향상되고 스토리지 사용량이 줄어듭니다.
쿼리가 인덱스의 더 작은 부분을 스캔하여 결과를 반환하기 때문에 정밀도가 높을수록 읽기 작업의 성능이 향상됩니다.
위치 정밀도는 쿼리 정확도에 영향을 주지 않습니다. 그리드 좌표는 항상 최종 쿼리 처리에 사용됩니다.
시작하기 전에
contacts 컬렉션을 생성합니다.
db.contacts.insertMany( [ { name: "Evander Otylia", phone: "202-555-0193", address: [ 55.5, 42.3 ] }, { name: "Georgine Lestaw", phone: "714-555-0107", address: [ -74, 44.74 ] } ] )
address 필드에는 레거시 좌표 쌍이 포함되어 있습니다.
절차
address 필드에 2D 인덱스를 만듭니다. 위치 정밀도를 32 비트로 지정합니다:
db.contacts.createIndex( { address: "2d" }, { bits: 32 } )
다음 단계
2D 인덱스를 사용하여 근접 쿼리와 같은 위치 데이터에 대한 계산을 수행할 수 있습니다.