geoNear()
Metoda konstruktora zapytań nie jest przeznaczona do użycia w polu. near()
jest metodą konstruktora, która podąża za field()
skupiać. Możesz zobaczyć, co robią obie te metody konstruktora w Builder.php
w ramach projektu doktryna/mongodb. Zauważ, że geoNear()
zmienia typ zapytania (podobnie jak update()
czy). Typ zapytania jest następnie sprawdzany w Query. php
(postępuj zgodnie z instrukcją switch) i określa, w jaki sposób wysyłamy zapytanie do kolekcji. Niektóre są rzeczywistymi operacjami zapytań, ale rzeczy takie jak map/reduce i geoNear są poleceniami.
Sprawdź, czy poniższy kod działa:
$dm->createQueryBuilder('MyBundle:Location')
->geoNear($geocodes['lat'],$geocodes['lon'])
->field('id')->in($arrayIds)
->getQuery()->execute()->toArray();
Jeśli nie, debuguj wartości, które Query.php przekazuje do Collection::near()
metoda. Alternatywnie możesz debugować całą tablicę zapytań wygenerowaną przez konstruktora za pomocą Query::getQuery()
metoda.