geoNear()
frågebyggarmetoden är inte avsedd att användas på ett fält. near()
är byggmetoden som skulle följa ett field()
fokus. Du kan se vad båda dessa byggmetoder gör i Builder.php
inom doktrin/mongodb-projektet. Observera att geoNear()
ändrar frågetypen (liknande vad update()
gör). Frågetypen kontrolleras sedan i Query. php
(följ switch-satsen) och bestämmer hur vi skickar frågan på samlingen. Vissa är faktiska frågeoperationer, men saker som map/reduce och geoNear är kommandon.
Se om följande kod fungerar:
$dm->createQueryBuilder('MyBundle:Location')
->geoNear($geocodes['lat'],$geocodes['lon'])
->field('id')->in($arrayIds)
->getQuery()->execute()->toArray();
Om inte, felsök värdena som Query.php skickar till Collection::near()
metod. Alternativt kan du felsöka hela frågeuppsättningen som skapats av byggaren genom att använda Query::getQuery()
metod.