geoNear()
методът за създаване на заявки не е предназначен да се използва в поле. near()
е методът за изграждане, който следва field()
фокус. Можете да видите какво правят и двата метода за изграждане в Builder.php
в рамките на проекта doctrine/mongodb. Обърнете внимание, че geoNear()
променя типа на заявката (подобно на това, което update()
прави). След това типът на заявката се проверява в Заявка. php
(следвайте командата за превключване) и определя начина, по който издаваме заявката към колекцията. Някои са действителни операции за заявки, но неща като map/reduce и geoNear са команди.
Вижте дали следният код работи:
$dm->createQueryBuilder('MyBundle:Location')
->geoNear($geocodes['lat'],$geocodes['lon'])
->field('id')->in($arrayIds)
->getQuery()->execute()->toArray();
Ако не, моля, отстранете грешки в стойностите, които Query.php предава на Collection::near()
метод. Като алтернатива можете да отстраните грешки в целия масив от заявки, генериран от създателя, като използвате Query::getQuery()
метод.