De geoNear()
query builder methode is niet bedoeld om te worden gebruikt op een veld. near()
is de bouwmethode die zou volgen op een field()
focus. U kunt zien wat deze beide bouwmethoden doen in Builder.php
binnen het doctrine/mongodb-project. Merk op dat geoNear()
verandert het querytype (vergelijkbaar met wat update()
doet). Het querytype wordt vervolgens gecontroleerd in Query. php
(volg de switch-instructie) en bepaalt hoe we de query op de verzameling afgeven. Sommige zijn echte zoekbewerkingen, maar zaken als map/reduce en geoNear zijn commando's.
Kijk of de volgende code werkt:
$dm->createQueryBuilder('MyBundle:Location')
->geoNear($geocodes['lat'],$geocodes['lon'])
->field('id')->in($arrayIds)
->getQuery()->execute()->toArray();
Zo niet, debug dan de waarden die Query.php doorgeeft aan de Collection::near()
methode. U kunt ook fouten opsporen in de volledige query-array die door de builder is gegenereerd met behulp van de Query::getQuery()
methode.