최대 거리 및 MongoDB에 사용할 유닛?
저는 MongoDB와 지리 공간 검색에 대해 생각해 보려고 노력하고 있습니다.기본적으로 제가 원하는 것은 사용자가 현재 위치에서 설정된 거리 내에서 촬영된 문서(이미지)를 쿼리할 수 있도록 하는 것입니다.그래서 저는 사용자가 서 있는 곳에서 1km 이내에서 촬영된 모든 이미지를 검색하고 있습니다. 아래 예제를 사용하려고 하지만 최대 거리 값으로 무엇을 설정해야 할지 모르겠습니다.
db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 }})
그래서 제 질문은 반경 1km 이내에서 문서를 검색할 경우 최대 거리를 얼마로 설정해야 합니까?
저는 여기에 완전히 갇혔습니다.
mongodb를 사용하기 위해서.$near
km 경계가 있는 쿼리, 반지름 값을 km로 변환해야 합니다.기본적으로 mongodb $near accepts$maxDistance
~하듯이radius
.
거리 변환 기준111.12
(1도는 약 111.12km) km를 사용할 때 또는 degree를 사용할 때 거리를 그대로 둡니다.
질문에 대하여
반경 1km 내에서 문서를 검색할 경우 최대 거리를 얼마로 설정합니까?
당신은 이것을 사용할 수 있습니다.
db.places.find( { loc : { $near : [50,50] , $maxDistance : 1/111.12 } } )
저는 여기서 몽고 공간 기능의 사용법에 대해 자세히 답변했습니다.확인할 수 있습니다.
MongoDB 버전 2.4에서는 다음과 같이 반경을 미터 단위로 직접 $maxDistance 값으로 지정할 수 있습니다.
db.<collection>.find({loc: {$near :
{$geometry :
{
type: 'Point',
coordinates: [<longitude> , <latitude>]
}
},
$maxDistance: 10*100
}
});
최근 버전에서는 Spring과 Mongo 4.0.5를 사용하고 있습니다.중요한 것은 인덱스 유형과 위치 데이터 유형입니다.저는 2dsphere, org.springframework.data.mongodb.core.geo 를 사용하고 있습니다.GeoJsonPoint 나중에 거리(미터)가 있는 지오메트리를 사용하여 해당 몽고 쿼리를 생성합니다.
{ "location" : { "$nearSphere" : { "$geometry" : { "type" : "Point", "coordinates" : [18.341772, 43.834183] }, "$maxDistance" : 331.0 }
언급URL : https://stackoverflow.com/questions/7837731/units-to-use-for-maxdistance-and-mongodb
'programing' 카테고리의 다른 글
사용자에게 이 개체에 액세스할 수 있는 권한이 없습니다.Firebase 스토리지 안드로이드 (0) | 2023.07.03 |
---|---|
깃을 가지고 다시 '마스터'로 전환하는 방법은? (0) | 2023.07.03 |
열 이름 또는 제공된 값 수가 테이블 정의와 일치하지 않습니다. (0) | 2023.07.03 |
유형 스크립트 인터페이스, 함수 및 네임스페이스의 이름이 모두 동일합니다.어떤 것이 수출되고 있습니까? (0) | 2023.06.28 |
Microsoft SQL Server Management Studio 열기 오류 (0) | 2023.06.28 |