2012-03-25 3 views
-1

2 지리 공간 인덱스를 구현하거나 효율적으로 시뮬레이션 할 수있는 데이터베이스를 찾고 있습니다.2 개의 지형 공간 인덱스를 지원하는 데이터베이스가 있습니까?

동기 부여 : 우리의 응용 프로그램은 위치가 아닌 벡터를 처리하며, 소스가 무언가 가까이 있고 목적지가 다른 곳에 가까이있는 모든 레코드를 찾아야합니다.

몽고 롯에는 없습니다. 데이터베이스가 있습니까?

mongodb map reduce 기능으로 시뮬레이션 할 수 있습니다. 데이터베이스는 소스 제약 조건을 만족하는 모든 레코드를 검색 한 다음 map-reduce를 통해 대상 제약 조건을 충족시키는 레코드를 남겨 둡니다. 누구든지 그랬니?

감사합니다.

+0

map/reduce 함수는 배열을 취할 수 없습니다. 배열은 지형 공간 좌표를 가리킬 때 필연적으로 필요합니다. – Barrie

+0

map-reduce 키는 좌표가 아닌 레코드 ID입니다. 문제는 두 번째 좌표가 일부 지역 내에 있는지 확인해야하는지도 함수를 계산하는 것입니다. 어떻게해야할지 모르고 성능이 저하 될까 우려됩니다. – mark

+0

downvoting에 대한 설명이 있으십니까? – mark

답변

1

Mongo의 MapReduce를 사용하여 가짜로 만들 수도 있지만 배치 작업으로 사용하기에 적합하며 응용 프로그램 수준 쿼리로는 잘 수행되지 않습니다.

원본 및 대상 지점을 별도의 Mongo 컬렉션에 저장하는 것이 좋습니다. 그런 다음 $ near를 사용하여 소스 지점에 가장 가까운 지점을 가져온 다음 소스 수집에 대한 쿼리를 수행 한 다음 대상 수집에 대해 다른 $ 근접 쿼리를 수행하고 메모리에서 교차를 계산할 수 있습니다.

다른 옵션 - 지형 공간 인덱스를 사용하여 점 배열을 포함하는 필드를 인덱싱 할 수 있으므로 소스 및 대상 점을 모두 배열의 요소로 저장하십시오. 그런 다음 해당 컬렉션에 대해 두 개의 쿼리 (원본 지점에 대해 하나, 대상에 대해 하나)를 실행하고 두 결과 집합을 검색하여 최종 결과를 계산합니다 (쿼리는 원본과 대상 중 어느 것이 일치하는지 구별하지 않습니다. 그래서 클라이언트 쪽에서 확인해야합니다.)

관련 문제