2012-06-27 1 views
1

mongodb doc에서 db.runCommand와 geoNear 반환 거리도 있습니다.mongodb : 2d 색인 반환 거리에서 찾을 수 있습니까?

나는 동일 Model.find으로을 달성 할 수 있는지 알고 싶어 Node.js를에 몽구스를 사용하고 하고 ({ 'LOC': {$ 근처 : [LNG, 위도, $ maxDistance : 5/111.12 }, .....)

둘 이상의 색인이있는 경우 runCommand with geoNear가 작동하지 않습니다. 컬렉션에 2 2d 인덱스가 있습니다. 하나는 스키마에 정의되고 다른 하나는 DbRef의 일부입니다.

또한 나는 몽구스로 runcommand에 사용되는 정확한 구문에 대해 매우 편안하지 않습니다.

답변

1

geoNear은 MongoDB 네이티브 드라이버에서 사용할 수 있으므로 mongoose에서 확장하여 문서의 모든 지리 색인을 검색하고 중복 항목이 없는지 확인하기 위해 uniqueDocs 매개 변수를 여러 번 반환 할 수 있습니다. .

collection.geoNear(50, 50, {uniqueDocs:true}, function(err, docs) { 
}); 

대체 방법은 특정 입력란에 가까운 검색어를 사용하는 것이지만 올바른 값을 얻기 위해 거리 값을 변환해야 할 수도 있습니다. 나는 그것이 마음에 들지 않는 것을 기억하지 못한다. 실험 할 수있는 가장 좋은 곳은 mongoshell이며 node.js 명령으로 변환하면됩니다.

+0

네이티브 드라이버의 geoNear 사용에 대한 답변을 더 게시했습니다 (http://stackoverflow.com/a/11825138/856403). 그러나 원래의 질문에 답하기 위해서 : 현재 '찾기'를 사용할 때 거리를 얻을 수 없습니다. – Timm