geoNear()
metoda tvůrce dotazů není určena k použití v poli. near()
je metoda stavitele, která bude následovat po field()
zaměřit se. Co dělají obě tyto metody builderu, můžete vidět v Builder.php
v rámci projektu doctrine/mongodb. Všimněte si, že geoNear()
změní typ dotazu (podobně jako update()
dělá). Typ dotazu je poté zkontrolován v Query. php
(podle příkazu switch) a určuje, jak zadáme dotaz na kolekci. Některé jsou skutečné operace dotazů, ale věci jako map/reduce a geoNear jsou příkazy.
Podívejte se, zda funguje následující kód:
$dm->createQueryBuilder('MyBundle:Location')
->geoNear($geocodes['lat'],$geocodes['lon'])
->field('id')->in($arrayIds)
->getQuery()->execute()->toArray();
Pokud ne, odlaďte prosím hodnoty, které Query.php předává do Collection::near()
metoda. Případně můžete odladit celé pole dotazů vygenerované tvůrcem pomocí Query::getQuery()
metoda.