MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Niewłaściwa odległość w metodzie geonear z Doctrine MongoDB ODM

geoNear() Metoda konstruktora zapytań nie jest przeznaczona do użycia w polu. near() jest metodą konstruktora, która podąża za field() skupiać. Możesz zobaczyć, co robią obie te metody konstruktora w Builder.php w ramach projektu doktryna/mongodb. Zauważ, że geoNear() zmienia typ zapytania (podobnie jak update() czy). Typ zapytania jest następnie sprawdzany w Query. php (postępuj zgodnie z instrukcją switch) i określa, w jaki sposób wysyłamy zapytanie do kolekcji. Niektóre są rzeczywistymi operacjami zapytań, ale rzeczy takie jak map/reduce i geoNear są poleceniami.

Sprawdź, czy poniższy kod działa:

$dm->createQueryBuilder('MyBundle:Location')
    ->geoNear($geocodes['lat'],$geocodes['lon'])
    ->field('id')->in($arrayIds)
    ->getQuery()->execute()->toArray();

Jeśli nie, debuguj wartości, które Query.php przekazuje do Collection::near() metoda. Alternatywnie możesz debugować całą tablicę zapytań wygenerowaną przez konstruktora za pomocą Query::getQuery() metoda.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak pozbyć się Error:OverwriteModelError:Nie można nadpisać modelu `undefined` raz skompilowanego.?

  2. Kopia zapasowa MongoDB w postaci tekstowej, a nie binarnej do kontroli źródła

  3. Jaki jest pożytek z pliku mongo.lock?

  4. Jak zrobić upsert z MongoDB 2.0?

  5. Spring data mongodb zapytanie o pole poddokumentu