doctrine-mongodb 프로젝트를 다시 작성하지 않고 geoNear 명령을 수행하는 방법을 알아 보려고합니다. Expr.php와 Builder.php 파일을 살펴 보았습니다. geoNear 명령어에 대한 참조를 찾지 못했습니다. 어떻게하면 Doctrine MongoDB ODM에서이 기능을 사용할 수 있습니까?Doctrine MongoDB geoNear
감사합니다.
doctrine-mongodb 프로젝트를 다시 작성하지 않고 geoNear 명령을 수행하는 방법을 알아 보려고합니다. Expr.php와 Builder.php 파일을 살펴 보았습니다. geoNear 명령어에 대한 참조를 찾지 못했습니다. 어떻게하면 Doctrine MongoDB ODM에서이 기능을 사용할 수 있습니까?Doctrine MongoDB geoNear
감사합니다.
라이브러리 버전은 몇 개입니까?
Doctrine MongoDb mappers's trunk, $qb->near(array($x, $y))
에 사용할 수있는 geoNear 명령의 구현이 있습니다. 하지만 매우 빠르게 테스트 해본 결과 광범위한 사용법에서 얼마나 효과가 있는지 말할 수 없습니다.
DoctrineODM의 lastes 버전은 geoNear
방법이 있습니다 See the code
그러나, geoNear
진정으로 MongoDB를 팀 정사각형을 위해 만든 해킹임을 명심하십시오. $near Doc for Mongo 2.2
$query->field('coordinates')
->equals(array('$near' => array($lat, $lon)
, '$maxDistance' => $maxDistanceKm/111));
경고 : $ 근처이 몽고 2.4에서 변경
사용 $ 대신 근처 거리의 지시 처음 100 개 결과를 반환 (당신은 페이지를 매기는 없습니다) 이제는 처음 100 개 항목 만 반환합니다. $near Doc for Mongo 2.4
$query->field('coordinates')
->equals(array('$within' => array('$center' => array(array($lat, $lon)
, $maxDistanceKm/111))));
그래서 당신은'$의 near'와 (제한) 페이지를 매기는 할 수 없습니다 당신이 거리를 기준으로 정렬 할 필요가없는 경우, 당신은 다른 필드를 기준으로 정렬 할 수 있으며 페이지를 매기 (몽고 2.2 또는
$within
)$geoWithin
를 사용할 수 있습니까? –마지막으로 확인한 시간은 : 아니요. 새로운 Mongo에서는 집합 프레임 워크를 사용하지만 많은 작업이 메모리에서 이루어 지므로 16Mb의 결과로 제한됩니다 – Madarco