sql >> Database >  >> NoSQL >> MongoDB

Verkeerde afstand in geo-methode met Doctrine MongoDB ODM

De geoNear() query builder methode is niet bedoeld om te worden gebruikt op een veld. near() is de bouwmethode die zou volgen op een field() focus. U kunt zien wat deze beide bouwmethoden doen in Builder.php binnen het doctrine/mongodb-project. Merk op dat geoNear() verandert het querytype (vergelijkbaar met wat update() doet). Het querytype wordt vervolgens gecontroleerd in Query. php (volg de switch-instructie) en bepaalt hoe we de query op de verzameling afgeven. Sommige zijn echte zoekbewerkingen, maar zaken als map/reduce en geoNear zijn commando's.

Kijk of de volgende code werkt:

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

Zo niet, debug dan de waarden die Query.php doorgeeft aan de Collection::near() methode. U kunt ook fouten opsporen in de volledige query-array die door de builder is gegenereerd met behulp van de Query::getQuery() methode.




  1. Meertalige gegevensmodellering op MongoDB

  2. Waarom heeft een mongodb-replicaset een oneven aantal stemknooppunten nodig?

  3. Zoek punten in de buurt van LineString in mongodb gesorteerd op afstand

  4. Fout:het update-bewerkingsdocument moet atomaire operatoren bevatten bij het uitvoeren van updateOne