2011-10-12 3 views
0

내 스키마입니다. 그러나 쿼리를 실행할 때 오류가 발생합니다. 오류 :오류 메시지가

count fails:{ errmsg: "exception: can't find special index: 2d for: { location_latLong: { $wi...", code: 13038, ok: 0.0 } 

내 쿼리는 다음과 같습니다

{ location_latLong: { '$within': { '$box': [[ '-100', '-100' ],[ '100', '100' ]] } } } 

그래서 제 질문은 .... 무슨 일이 준다? 어떻게 제대로 당신이 당신의 지리적 지수에 잘못된 순서를 지정하기 때문에 MongoDB를이 GeoJSON 기반으로하므로

+1

"특별한 인덱스"LOL – yalestar

답변

2

이있다 (Node.js를 사용하여) 몽구스의 지리 공간 색인 작업을 수행 할 수 있습니다, 그

먼저 경도 필드를 가지고 recommented

대신이 위치 개체 (경도, 위도 키가) 완전히 무시됩니다에 할당이

location_latLong: 
    lat: 
     type: Number 
    lon: 
     type: Number 

사용이

location_latLong: 
    lon: 
     type: Number 
    lat: 
     type: Number 

이름, 순서 만 감지됩니다. mongodb geospatial page에서

는 그

기본적으로

, 인덱스는 위도/경도를 인덱싱하고 은 따라서 [-180..180) 값의 범위

구성된 가정 여러 곳에서 추천

코드는 (경도, 위도) 위해 소수도 사용하고 있다고 가정합니다 . GeoJSON 사양과 동일한 순서입니다. (위도, 경도)를 사용하면 매우 잘못된 결과가 발생하지만 은 종종 다른 곳에서 사용되는 순서이므로 두 번 확인하는 것이 좋습니다. 위치 객체에 지정한 이름 (배열을 사용하는 객체가 아닌 )은 완전히 무시되며 순서 만 감지됩니다.

나는 이미 before에 대답했다.

응원

+1

머리 위로 ... 분명히 MongoDB를 거짓말!{ "lon": -3.202774, "lzt": 55.954155}'내 DB에 저장된 내용 (순서에주의)이지만 'lat'를 사용하면 'lat'가 먼저 나타납니다 . 최종 줄 - 알파 정렬을 기반으로하는 키 순서 지정 – Shamoon