sourcetip

mongoDB에 지리공간 정보를 저장하는 방법

fileupload 2023. 7. 2. 20:55
반응형

mongoDB에 지리공간 정보를 저장하는 방법

mongoDB 문서(링크)에 따르면 문서 필드에 지리공간 정보를 저장하려면 배열 또는 내장된 문서의 두 가지 선택사항이 있으며, 순서는 항상 경도, 위도여야 합니다.

내장된 문서를 사용하려면 필드의 순서를 어떻게 확인해야 합니까?

또는 내장된 문서의 필드에 특정 이름이 있어야 합니까?

내장된 문서의 필드 이름에 관계없이, 내장된 문서의 첫 번째 필드에는 경도 값이 포함되어야 하고 두 번째 필드에는 위도 값이 포함되어야 합니다.예:

 db.zips2.insert( { _id: 1, city: "b", loc: { x: -73.974, y: 40.764 } } )
 db.zips2.insert( { _id: 2, city: "b", loc: { x: -73.981, y: 40.768 } } )

여기서 x 필드는 경도이고 y 필드는 위도입니다.

안부 전해요

2D 지리공간 색인, 위치 데이터 저장

"모든 문서는 위치 데이터를 동일한 순서로 저장해야 합니다.위도 및 경도를 좌표계로 사용하는 경우 항상 경도를 먼저 저장합니다.MongoDB의 2d 구면 인덱스 연산자는 [경도, 위도] 순서만 인식합니다."

MongoDB의 지리공간 쿼리에 대한 좋은 게시물입니다.

해당 분야의 이름을 지정하는 것이 좋습니다.x and y대신에longitude/latitude왜냐하면 업데이트 후 경도와 위도가 알파벳 순서대로 정렬되어 역순으로 정렬되기 때문입니다.

MongoDB 문서에는 다음과 같은 내용이 나와 있습니다.

개체의 좌표를 지정하는 좌표라는 필드입니다.위도 및 경도 좌표를 지정하는 경우 경도를 먼저 나열한 다음 위도를 나열합니다.

유효한 경도 값은 -180과 180 사이이며 둘 다 포함됩니다.유효한 위도 값은 -90과 90 사이입니다(둘 다 포함).

MongoDB 공식 문서: https://docs.mongodb.com/manual/geospatial-queries/ #geospatial-discovery

지리공간지수는 우리가 지리적 위치를 기반으로 사물을 찾을 수 있게 해줍니다.

두 가지 옵션이 있습니다.

  • 2D
  • 3차원

2-D에서, 우리는 다음과 같은 데카르트 평면을 가지고 있습니다.x&y좌표와 여러 가지 다른 물체들이 있습니다.


2D cartesian plane


문서는 어떤 종류의 저장이 필요합니다.x,y와의 위치ensureIndex({'location':'2d', 'type':1}).

type(선택사항) 옵션은 인덱스의 방향(즉, 오름차순 또는 내림차순)을 지정합니다.복합 인덱스일 수 있습니다.

사용 예:

주변 위치를 찾으려면 다음 명령을 사용합니다.

db.collectionName.find({location: {$near:[x,y]}})

실제로, 이것이 자주 사용되는 방법은 다음과 같습니다.limit결과를 를 들어 20개 추가로 제한하는 방법.limit(20).

db.collectionName.find({location: {$near:[x,y]}}).limit(20)

언급URL : https://stackoverflow.com/questions/15274834/how-to-store-geospatial-information-in-mongodb

반응형