2014-04-08 2 views
2

유성 프로젝트에서 가장 가까운 게시물을 얻으려고합니다. 그것은 나의 4 개의 기입을 돌려주고있다. 그러나 출발점으로부터의 거리에 의해 분류되지 않는다. 나는이 두 가지 인덱스 추가 :

db.postings.ensureIndex({ loc : "2d" }) 
db.postings.ensureIndex({ loc : "2dsphere" }) 

을 그리고 다음 쿼리 실행 :

Postings.find loc: 
    $near: 
     $geometry: 
     type: "Point" 
     coordinates: [ 39.107225, -84.501956 ] 

을하지만이 순서대로 반환

: 여기
_id:xs.. 39.239881, -84.359919 15.2 miles (according to google maps) 
_id:aK.. 39.239881, -84.359919 15.2 miles 
_id:8z.. 39.107225, -84.50195600000001 0 miles 
_id:An.. 39.405906, -84.52211699999999 30.5 miles 

는 예를 들어 문서입니다
{ 
"_id": "xsTpnpw7eCAgFS565", 
"loc": [39.239881, -84.359919] 

}

답변

0

이 시도 : 내가 2dsphere 지수 (유형 및 특성을 좌표)를 GeoJSON 개체를 통과 쿼리를 사용했다

Postings.find loc: 
    $near: [ 39.107225, -84.501956 ] 
+0

, 내 정렬은 작동하지 않았다. 그것은 mongo 명령 행에서도 작동하지 않았습니다. 그런 다음이 스타일의 쿼리와 평범한 2D 인덱스로 변경했습니다. 모든 것이 작동했습니다. 뭐라 구요? – the0ther