MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDb 2.6.1 Fehler:17444 – Legacy-Punkt liegt außerhalb der Grenzen für sphärische Abfragen

Sie verwenden MongoDB 2.6.1 oder höher, weil der Code, den Sie sich ansehen, als Fix für einen JIRA-13666 Ausgabe.

Das Problem bestand darin, dass einige $near-Abfragen den MongoDB-Server zum Absturz brachten, wenn sie mit Legacy-Koordinaten aufgerufen wurden, die außerhalb des zulässigen Bereichs lagen.

Sie senden wahrscheinlich Koordinaten, die außerhalb des Bereichs liegen. Der Teil des Codes, der Längen- und Breitengrad überprüft, wenn $near-Abfragen mit maximaler Entfernung durchgeführt werden (GeoParser::parsePointWithMaxDistance Methode in geoparser.cpp ):

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

Wenn die Koordinaten außerhalb des Bereichs liegen centroid.flatUpgradedToSphere wird falsch sein und das wird den Fehler verursachen, den Sie erhalten.

Sie sollten entweder Ihre Koordinaten so ändern, dass sie in Reichweite sind, oder spherical einstellen Parameter auf "false", um diesen Fehler zu vermeiden.

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