geoNear()
query builder-metoden er ikke beregnet til at blive brugt på et felt. near()
er byggemetoden, der ville følge et field()
fokus. Du kan se, hvad begge disse builder-metoder gør i Builder.php
inden for doktrin/mongodb-projektet. Bemærk, at geoNear()
ændrer forespørgselstypen (svarende til update()
gør). Forespørgselstypen tjekkes derefter i Query. php
(følg switch-erklæringen) og bestemmer, hvordan vi udsteder forespørgslen på samlingen. Nogle er faktiske forespørgselsoperationer, men ting som map/reduce og geoNear er kommandoer.
Se om følgende kode virker:
$dm->createQueryBuilder('MyBundle:Location')
->geoNear($geocodes['lat'],$geocodes['lon'])
->field('id')->in($arrayIds)
->getQuery()->execute()->toArray();
Hvis ikke, bedes du fejlsøge de værdier, som Query.php sender til Collection::near()
metode. Alternativt kan du fejlsøge hele forespørgselsarrayet genereret af builderen ved at bruge Query::getQuery()
metode.