본문 바로가기

Database/mongoDB

$box

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

 

Definition (정의)

$box

 

geospatial $geoWithin 쿼리에서 점 기반의 위치 데이터에 따라 직사각형의 경계 내에 있는 documents 를 반환하기 위한 직사각형을 지정합니다. $box 연산자를 사용할 때, $geoWithin 은 GeoJSON shapes 에 쿼리하지 않고 그리드 좌표를 기반으로 한 documents 를 반환합니다. 

 

$box 연산자를 사용하기 위해선 배열 내에 직사각형의 왼쪽 하단 과 오른쪽 상단을 지정해야 합니다 :

 

{
  <location field>: {
     $geoWithin: {
        $box: [
          [ <bottom left coordinates> ],
          [ <upper right coordinates> ]
        ]
     }
  }
}

 

중요 : 경도와 위도를 사용하려면 경도를 먼저 지정하세요.

 

Behavior (동작)

쿼리는 평평한 (평면) geometry 를 사용해 거리를 계산합니다.

 

응용 프로그램에서 geospatial index 없이 $box 를 사용할 수 있습니다. 그러나 geospatial index 는 인덱싱되지 않은 것보다 훨씬 빠른 쿼리를 지원합니다.

 

2d geospatial index 만 $box 를 지원합니다.

 

Example (예시)

다음의 예시 쿼리는 [ 0 , 0 ], [ 0 , 100 ], [ 100 , 0 ], [ 100 , 100 ] - 4개의 점을 가진 box 내에 있는 모든 documents 를 반환합니다.

 

db.places.find( {
   loc: { $geoWithin: { $box:  [ [ 0, 0 ], [ 100, 100 ] ] } }
} )

 

 

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

 

$box — MongoDB Manual

Example The following example query returns all documents that are within the box having points at: [ 0 , 0 ], [ 0 , 100 ], [ 100 , 0 ], and [ 100 , 100 ]. db.places.find( { loc: { $geoWithin: { $box: [ [ 0, 0 ], [ 100, 100 ] ] } } } )

docs.mongodb.com

 

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

$centerSphere  (0) 2020.04.12
$center  (0) 2020.04.12
$nearSphere  (0) 2020.04.09
$near  (0) 2020.04.05
$geoWithin  (0) 2020.03.31