본문 바로가기

Database/mongoDB

$polygon

※ MongoDB 공식 매뉴얼에 나와있는 $polygon 부분을 번역해 보도록 하겠습니다. 번역을 안하는게 나을 것 같은 용어들은 한번만 번역하거나 그대로 두었습니다.

 

Definition (정의)

$polygon

 

레거시 좌표 쌍의 geospatial $geoWithin 쿼리에 대한 polygon 을 지정합니다. 쿼리는 polygon 경계내에 있는 쌍을 반환합니다. 연산자는 GeoJSON 객체를 쿼리하지 않습니다.

 

polygon 을 정의하기 위해선, 좌표 점들의 배열을 지정합니다 :

 

{
   <location field>: {
      $geoWithin: {
         $polygon: [ [ <x1> , <y1> ], [ <x2> , <y2> ], [ <x3> , <y3> ], ... ]
      }
   }
}

 

 

마지막 점은 암시적으로 첫번째 점과 연결됩니다. 원하는만큼 점, 면을 지정할 수 있습니다.

 

중요 : 경도와 위도를 사용한다면, 경도 먼저 지정해야 합니다.

 

Behavior (동작)

$polygon 연산자는 평평한 (평면) gemoetry 를 사용해 거리를 계산합니다.

 

응용 프로그램에서 geospatial index 없이 $polygon 을 사용할 수 있지만, geospatial index 는 인덱싱되지않은 다른 것들보다 더 빠른 쿼리를 지원합니다.

 

2d geospatial index 만 $polygon 연산자를 지원합니다.

 

Example (예시)

다음의 쿼리는 [ 0 , 0 ], [ 3 , 6 ], [ 6 , 0 ] 로 정의된 polygon 내에 있는 좌표들을 가진 모든 documents 를 반환합니다 :

 

db.places.find(
  {
     loc: {
       $geoWithin: { $polygon: [ [ 0 , 0 ], [ 3 , 6 ], [ 6 , 0 ] ] }
     }
  }
)

 

 

출처 : https://docs.mongodb.com/manual/reference/operator/query/polygon/

 

$polygon — MongoDB Manual

Example The following query returns all documents that have coordinates that exist within the polygon defined by [ 0 , 0 ], [ 3 , 6 ], and [ 6 , 0 ]: db.places.find( { loc: { $geoWithin: { $polygon: [ [ 0 , 0 ], [ 3 , 6 ], [ 6 , 0 ] ] } } } )

docs.mongodb.com

 

'Database > mongoDB' 카테고리의 다른 글

$minDistance  (0) 2020.04.16
$maxDistance  (0) 2020.04.16
$geometry  (0) 2020.04.16
$centerSphere  (0) 2020.04.12
$center  (0) 2020.04.12