2015-02-05 3 views
0

나는 {A, B, C, ..., X} 점을 가지고 매트릭스에 거리를 저장하고 싶다. 하나의 복잡한 합병증은 A에서 B까지의 거리와 B에서 A까지의 거리가 같지 않다는 것입니다. 이들은 비대칭입니다.MongoDB에 콜렉션으로 행렬을 저장

나의 목표는이 매트릭스를 MongoDB의 콜렉션에 저장하는 것이지만 실제로 어떻게 할 수 있는지 모르겠다. 어떤 조언 /지도도 많이 부탁드립니다.

+0

저장하려는 구조의보다 완전한 예를 제공 할 수 있습니까? 이 포인트들은 지리적 좌표입니까? –

+0

@LeonardoDelfino 포인트는 지리적 좌표입니다. 위도와 경도. 이 두 점 사이의 거리를 저장하고 싶습니다. 어떤 두 점에 대해서도 점 A에서 점 B까지의 거리는 점 B에서 점 A까지의 거리와 같지 않습니다. 기본적으로 몽고에 거리 행렬을 저장하고 싶습니다. 어떤 두 점 (B와 D라고 말하면 됨)을주고 그것들 사이의 거리를 구할 수 있습니다. – RegUser

답변

0

호기심에서 "거리"의 측정 기준을 사용하고 계십니까? 기술적으로, 항상 d(X, Y) = d(Y, X)이 아닌 한 d(X, Y)"distance"으로 부를 수 없습니다. 구의 점 사이의 거리는 대칭이므로 해당 측정 기준을 사용할 수 없습니다. 당신이 원하는 모든 저장하고 검색 값 d(X, Y), 단지 문서를 저장하는 경우

{ 
    "from" : X, 
    "to" : Y, 
    "distance" : 691 
} 

XY 같은 값의 어떤 종류가 적합하다. { "from" : 1, "to" : 1 }에 색인을 입력 한 다음

을 입력하십시오.
function d(X, Y) { 
    return db.distances.findOne({ "from" : X, "to" : Y }).distance 
} 
+0

감사합니다 !! Google지도 API와의 거리가 멀어졌습니다. – RegUser

0

MongoDB는 인덱스를 생성하고 이러한 개체를 쿼리하는 특별한 방법을 제공하는 지형 공간 개체를 지원합니다.

을 살펴 보자

http://docs.mongodb.org/manual/applications/geospatial-indexes/

을하고 당신을 위해 무엇을 찾고있는 경우를 참조하십시오.

+0

2Dsphere 인덱스가 작동하는 방법을 모르겠습니다. 기본적으로 위도와 경도가있는 모든 위치를 저장하는 테이블이 있지만 Google지도 API를 사용하여 거리를 계산하고 Mongo의 다른 컬렉션에 삽입하려고합니다. – RegUser