sql >> Database teknologi >  >> NoSQL >> MongoDB

Forkert afstand i geonear-metoden med Doctrine MongoDB ODM

geoNear() query builder-metoden er ikke beregnet til at blive brugt på et felt. near() er byggemetoden, der ville følge et field() fokus. Du kan se, hvad begge disse builder-metoder gør i Builder.php inden for doktrin/mongodb-projektet. Bemærk, at geoNear() ændrer forespørgselstypen (svarende til update() gør). Forespørgselstypen tjekkes derefter i Query. php (følg switch-erklæringen) og bestemmer, hvordan vi udsteder forespørgslen på samlingen. Nogle er faktiske forespørgselsoperationer, men ting som map/reduce og geoNear er kommandoer.

Se om følgende kode virker:

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

Hvis ikke, bedes du fejlsøge de værdier, som Query.php sender til Collection::near() metode. Alternativt kan du fejlsøge hele forespørgselsarrayet genereret af builderen ved at bruge Query::getQuery() metode.




  1. Intermitterende MongoDB-forbindelsesproblem:Der blev gjort et forsøg på at få adgang til en socket på en måde, der er forbudt af dens adgangstilladelser

  2. Begræns antallet af feltretur fra mongodb i Meteor

  3. Mongoose Promise fejl

  4. MongoDB-forespørgsel på n'te element (variabelt indeks) i underdokumentarray