평평한 표면의 도형 내 위치 쿼리
평평한 표면에서 지정된 도형 내의 위치 데이터를 쿼리하려면 $geoWithin
연산자를 사용합니다. 평평한 표면에 표시되는 데이터에 $geoWithin
를 사용하려면 다음 구문을 사용하세요.
db.<collection>.find( { <location field> : { $geoWithin : { <shape operator> : <coordinates> } } } )
쿼리에 대해 다음 값을 바꿉니다.
필드 | 설명 |
---|---|
<collection> | 쿼리 collection입니다. |
<location field> | 위치 데이터가 포함된 필드입니다. 평평한 표면에 대한 쿼리의 경우 데이터를 legacy coordinate pairs로 저장해야 합니다. |
<shape operator> | |
<coordinates> | 쿼리할 도형의 가장자리를 정의하는 좌표입니다. 경도와 위도 좌표를 지정할 때는 경도를 먼저 입력한 다음 위도를 입력합니다.
|
이 작업에 대하여
$geoWithin
지리 공간적 공간 인덱스가 필요하지 않습니다. 그러나 지리 공간적 공간 인덱스는 쿼리 성능을 향상시킵니다.
시작하기 전에
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
필드에는 레거시 좌표 쌍이 포함되어 있습니다.
절차
을(를) 사용하여 $geoWithin
collection을 쿼리합니다.contacts
다음 $geoWithin
쿼리는 $box
연산자를 사용하여 지정된 사각형 내에 나타나는 문서를 반환합니다.
db.contacts.find( { address: { $geoWithin: { $box: [ [ 49, 40 ], [ 60, 60 ] ] } } } )
출력:
[ { _id: ObjectId("647e4e496cdaf4dc323ec92a"), name: 'Evander Otylia', phone: '202-555-0193', address: [ 55.5, 42.3 ] } ]
$box
연산자의 값은 쿼리할 사각형의 왼쪽 하단 및 오른쪽 상단 모서리를 나타냅니다.
이전에 표시된 $geoWithin
쿼리는 다음과 같은 꼭지점이 있는 사각형 내에 있는 문서를 반환합니다.
[ 49, 40 ]
[ 49, 60 ]
[ 60, 60 ]
[ 60, 40 ]
자세히 알아보기
$geoWithin
연산자를 다른 도형과 함께 사용하는 방법을 알아보려면 다음 페이지를 참조하세요.
다각형 내에서 쿼리하려면
$polygon
을(를) 참조하세요.원 내에서 쿼리하려면
$center
을(를) 참조하세요.