Docs Menu
Docs Home
/ /

다각형으로 묶인 위치 쿼리하기

지정된 다각형 경계 내의 위치 데이터를 쿼리할 수 있습니다.

경계 내의 위치 데이터를 쿼리 하려면 $geoWithin 연산자 를 사용하고 다각형 꼭짓점의 좌표를 지정합니다.

db.<collection>.find( {
<location field> : {
$geoWithin : {
$geometry : {
type : "Polygon",
coordinates : [ <coordinates> ]
}
}
}
} )
  • $geoWithin 연산자로 쿼리하는 필드의 값은 GeoJSON 형식이어야 합니다.

  • 경도와 위도 좌표를 지정할 때는 경도를 먼저 입력한 다음 위도를 입력합니다.

    • 유효한 경도 값은 -180~180입니다(둘 모두 포함).

    • 유효한 위도 값은 -90~90입니다(둘 모두 포함).

  • 다각형 coordinates 을 지정하는 경우 배열의 첫 번째 좌표와 마지막 좌표가 동일해야 합니다. 이렇게 하면 다각형의 경계가 닫힙니다.

  • $geoWithin 지리 공간적 공간 인덱스가 필요하지 않습니다. 그러나 지리 공간적 공간 인덱스는 쿼리 성능을 향상시킵니다. 2dsphere 지리 공간적 인덱스만 $geoWithin 을 지원합니다. 자세한 내용은 2dsphere 인덱스 만들기를 참조하세요.

이러한 문서가 포함된 places 컬렉션을 만듭니다.

db.places.insertMany( [
{
loc: { type: "Point", coordinates: [ -73.97, 40.77 ] },
name: "Central Park",
category : "Park"
},
{
loc: { type: "Point", coordinates: [ -73.88, 40.78 ] },
name: "La Guardia Airport",
category: "Airport"
},
{
loc: { type: "Point", coordinates: [ -1.83, 51.18 ] },
name: "Stonehenge",
category : "Monument"
}
] )

컬렉션을 쿼리하려면 $geoWithin 을(를) 사용합니다. 다음 $geoWithin 쿼리는 꼭짓점 4개가 있는 다각형(사각형)을 지정하고 해당 다각형 내의 점을 반환합니다.

db.places.find( {
loc: {
$geoWithin: {
$geometry: {
type: "Polygon",
coordinates: [ [
[ -73.95, 40.80 ],
[ -73.94, 40.79 ],
[ -73.97, 40.76 ],
[ -73.98, 40.76 ],
[ -73.95, 40.80 ]
] ]
}
}
}
} )

출력:

[
{
_id: ObjectId("63a4a8d67348ebdcd0a061f0"),
loc: { type: 'Point', coordinates: [ -73.97, 40.77 ] },
name: 'Central Park',
category: 'Park'
}
]

돌아가기

쿼리

이 페이지의 내용