MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDb 2.6.1 Erreur :17444 - Le point hérité est hors limites pour la requête sphérique

Vous utilisez MongoDB 2.6.1 ou une version ultérieure car le code que vous consultez a été ajouté en tant que correctif pour un JIRA-13666 publier.

Le problème était que certaines requêtes $near plantaient le serveur MongoDB lorsqu'elles étaient appelées avec des coordonnées héritées hors plage.

Vous envoyez probablement des coordonnées qui sont hors de portée. La partie du code qui vérifie la longitude et la latitude lors de requêtes $near avec une distance maximale (GeoParser::parsePointWithMaxDistance méthode dans geoparser.cpp ):

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

Si les coordonnées sont hors plage centroid.flatUpgradedToSphere sera faux et cela provoquera l'erreur que vous recevez.

Vous devez soit modifier vos coordonnées pour qu'elles soient à portée, soit définir spherical paramètre sur false pour éviter d'obtenir cette erreur.

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