sql >> Database >  >> NoSQL >> MongoDB

MongoDb 2.6.1 Fout:17444 - Verouderd punt is buiten bereik voor sferische zoekopdrachten

Je gebruikt MongoDB 2.6.1 of hoger omdat de code die je bekijkt is toegevoegd als een oplossing voor een JIRA-13666 kwestie.

Het probleem was dat sommige $near-query's de MongoDB-server zouden laten crashen wanneer ze werden aangeroepen met verouderde coördinaten die buiten bereik zijn.

Je verzendt waarschijnlijk coördinaten die buiten bereik zijn. Het deel van de code dat de lengte- en breedtegraad controleert bij het uitvoeren van $near-query's met maximale afstand (GeoParser::parsePointWithMaxDistance methode in geoparser.cpp ):

bool isValidLngLat(double lng, double lat) {
    return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}

Als de coördinaten buiten het bereik liggen centroid.flatUpgradedToSphere zal onwaar zijn en dat zal de fout veroorzaken die u ontvangt.

Je moet ofwel je coördinaten veranderen om binnen bereik te zijn of spherical . instellen parameter op false om deze fout te voorkomen.

Query.Near("Location", location.Geography.Longitude, 
           location.Geography.Latitude, location.Radius / 6371000, false)



  1. Wat betekent het om een ​​werkset in RAM voor MongoDB te passen?

  2. TypeError:object is geen functie bij het gebruik van MongoDB met Node.js

  3. Query MongoDB met $and en Multiple $or

  4. Docker:map wijzigen waar docker-volumes worden opgeslagen