Das geoNear()
Die Abfrageerstellungsmethode ist nicht für die Verwendung in einem Feld vorgesehen. near()
ist die Builder-Methode, die einem field()
folgen würde Fokus. Sie können sehen, was diese beiden Builder-Methoden in Builder.php
innerhalb des Doktrin/Mongodb-Projekts. Beachten Sie, dass geoNear()
ändert den Abfragetyp (ähnlich wie update()
tut). Der Abfragetyp wird dann in Query überprüft. php
(folgen Sie der switch-Anweisung) und bestimmt, wie wir die Abfrage für die Sammlung ausgeben. Einige sind tatsächliche Abfrageoperationen, aber Dinge wie map/reduce und geoNear sind Befehle.
Prüfen Sie, ob der folgende Code funktioniert:
$dm->createQueryBuilder('MyBundle:Location')
->geoNear($geocodes['lat'],$geocodes['lon'])
->field('id')->in($arrayIds)
->getQuery()->execute()->toArray();
Wenn nicht, debuggen Sie bitte die Werte, die Query.php an Collection::near()
übergibt Methode. Alternativ können Sie das gesamte vom Builder generierte Abfragearray debuggen, indem Sie Query::getQuery()
verwenden Methode.