MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Грешно разстояние в метода geonear с Doctrine MongoDB ODM

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() метод.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $degreesToRadians

  2. Mongoid::Versioning - как да проверя предишни версии?

  3. Как да регистрирамClassMap за всички класове в пространство от имена за MongoDb?

  4. Може ли mongo да премахва автоматично колекции?

  5. Въведение в Percona Server за MongoDB 4.2