2014-06-11 4 views
0

문서를 읽었지만 예상대로 작동하지 않습니다. 나는 다음과 같은 문서가 있습니다화합물 2dsphere 지수를 어떻게 보장할까요?

{ 
    "_id" : ObjectId("5396e85c12f43f5d1bafbd13"), 
    "author" : ObjectId("5396ca2b0fe95cf96599d881"), 
    "location" : { 
     "address" : "An address", 
     "coordinates" : [ 
      12.52891929999998, 
      16.620259 
     ], 
     "type" : "Point", 
     "postal_code" : "333", 
     "country" : "Country", 
    }, 
    "description" : "aDescription" 
} 

을 그리고 몽고에 다음 인덱스가 :

{ 
    "location" : "2dsphere" 
} 

가 어떻게 복합 인덱스를 만들 수 있습니까?

db.articles.ensureIndex({ location : "2dsphere", postal_code:1, country:1, address:1 }) 

는 우편 _ 번호 무엇 않습니다 : 1 또는 -1 의미 는 올바른 다음인가?

답변

0

문서에 대한 올바른 형식은 다음과 같습니다 해당 필드 이후

db.articles.ensureIndex({ 
    "location" : "2dsphere", 
    "location.postal_code":1, 
    "location.country":1, 
    "location.address":1 
}) 

당신이 "점 표기법"에 대한 전체 경로를 지정하는 "위치"하위 문서의 일부입니다.

1 또는 -1의 표기는 각각 오름차순 및 내림차순을 나타냅니다.

"2dsphere"색인 요소가 첫 번째이므로이 색인을 사용하는 지리 공간 질의를 조합하여 사용할 때 복합 색인으로 사용할 수 있습니다. "국가"는 "가까운"또는 "내적인"지점 좌표를 검색하는 데 약간 넓다고 제안 할 것입니다. 그러나 다른 사람들은 효과적으로 결과를 필터링 할 수 있습니다.