Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ /

인덱스 2dsphere 쿼리

이 페이지의 내용

  • 다각형으로 묶인 GeoJSON 객체
  • GeoJSON 객체의 교차점
  • GeoJSON 포인트에 대한 근접성
  • 구에 정의된 원 내의 점

다음 섹션에서는 2dsphere 인덱스에서 지원하는 쿼리에 대해 설명합니다.

$geoWithin 연산자 는 GeoJSON 다각형 내에서 발견된 위치 데이터를 쿼리합니다. 위치 데이터는 GeoJSON 형식으로 저장해야 합니다. 다음 구문을 사용합니다.

db.<collection>.find( { <location field> :
{ $geoWithin :
{ $geometry :
{ type : "Polygon" ,
coordinates : [ <coordinates> ]
} } } } )

다음 예에서는 완전히 GeoJSON 다각형 내에 존재하는 모든 점과 모양을 선택합니다.

db.places.find( { loc :
{ $geoWithin :
{ $geometry :
{ type : "Polygon" ,
coordinates : [ [
[ 0 , 0 ] ,
[ 3 , 6 ] ,
[ 6 , 1 ] ,
[ 0 , 0 ]
] ]
} } } } )

$geoIntersects 연산자는 지정된 GeoJSON 객체와 교차하는 위치를 쿼리합니다. 교차점이 비어 있지 않은 경우 위치는 객체와 교차합니다. 여기에는 가장자리를 공유하는 문서가 포함됩니다.

$geoIntersects 연산자는 다음 구문을 사용합니다:

db.<collection>.find( { <location field> :
{ $geoIntersects :
{ $geometry :
{ type : "<GeoJSON object type>" ,
coordinates : [ <coordinates> ]
} } } } )

다음 예제에서는 $geoIntersects 를 사용하여 coordinates 배열로 정의된 다각형과 교차하는 모든 인덱스 점과 모양을 선택합니다.

db.places.find( { loc :
{ $geoIntersects :
{ $geometry :
{ type : "Polygon" ,
coordinates: [ [
[ 0 , 0 ] ,
[ 3 , 6 ] ,
[ 6 , 1 ] ,
[ 0 , 0 ]
] ]
} } } } )

근접 쿼리는 정의된 지점에 가장 가까운 지점을 반환하고 거리를 기준으로 결과를 정렬합니다. GeoJSON 데이터에 대한 근접 쿼리에는 2dsphere 인덱스가 필요합니다.

GeoJSON 포인트에 대한 근접성을 쿼리하려면 $near 연산자를 사용합니다. 거리는 미터 단위입니다.

$near 는 다음 구문을 사용합니다:

db.<collection>.find( { <location field> :
{ $near :
{ $geometry :
{ type : "Point" ,
coordinates : [ <longitude> , <latitude> ] } ,
$maxDistance : <distance in meters>
} } } )

예를 보려면 $near 을(를) 참조하세요.

$nearSphere 연산자 및 $geoNear 집계 파이프라인 단계도 참조하세요.

구의 "구형 대문자" 안의 모든 격자 좌표를 선택하려면 연산자와 함께 를 $geoWithin $centerSphere 사용합니다. 다음을 포함하는 배열을 지정합니다.

다음 구문을 사용합니다.

db.<collection>.find( { <location field> :
{ $geoWithin :
{ $centerSphere :
[ [ <x>, <y> ] , <radius> ] }
} } )

다음 예제에서는 그리드 좌표를 쿼리하고 경도 88 W 및 위도 30 N 반경 10마일 내의 모든 문서를 반환합니다. 이 예에서는 지구의 대략적인 적도 반경인 3963.2마일을 나누어 거리인 10마일을 라디안으로 변환합니다.

db.places.find( { loc :
{ $geoWithin :
{ $centerSphere :
[ [ -88 , 30 ] , 10 / 3963.2 ]
} } } )

돌아가기

2dsphere