문서 메뉴
문서 홈
/
MongoDB 매뉴얼
/ / / / /

평평한 표면의 한 점 근처 위치 쿼리

이 페이지의 내용

  • 이 작업에 대하여
  • 시작하기 전에
  • 절차
  • 자세히 알아보기

평평한 표면의 지정된 지점 근처에 표시되는 위치 데이터를 쿼리할 수 있습니다.

지정된 점 근처의 위치 데이터를 쿼리하려면 $near 연산자를 사용합니다.

db.<collection>.find( {
<location field> : {
$near : [ <longitude>, <latitude> ],
$maxDistance : <distance in meters>
}
} )
  • $near 연산자에서 좌표 쌍을 지정할 때는 경도 를 먼저 나열한 다음 위도 를 나열합니다.

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

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

  • $maxDistance 필드에 거리를 미터 단위 로 지정합니다.

  1. 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 필드에는 레거시 좌표 쌍이 포함되어 있습니다.

  2. $near 연산자를 사용하여 위치 데이터를 쿼리하려면 위치 데이터가 포함된 필드에 지리 공간적 인덱스 를 만들어야 합니다.

    address 필드에 2D 인덱스를 만듭니다.

    db.contacts.createIndex( { address: "2d" } )

컬렉션을 쿼리하려면 $near 을(를) 사용합니다. 다음 $near 쿼리는 좌표 쌍 [ -73.92, 40.78 ] 에서 50미터 이내에 address 필드가 있는 문서를 반환합니다.

db.contacts.find( {
address: {
$near: [ -73.92, 40.78 ],
$maxDistance : 50
}
} )

출력:

[
{
_id: ObjectId("640a3dd9c639b6f094b00e89"),
name: 'Georgine Lestaw',
phone: '714-555-0107',
address: [ -74, 44.74 ]
}
]

결과는 쿼리된 지점으로부터의 거리를 기준으로 가장 가까운 것부터 가장 먼 것까지 정렬됩니다.

← 2d 인덱스 쿼리