Používáte MongoDB 2.6.1 nebo vyšší, protože kód, na který se díváte, byl přidán jako oprava pro JIRA-13666 problém.
Problém byl v tom, že některé dotazy $near zhroutily server MongoDB, když byly volány se staršími souřadnicemi, které jsou mimo rozsah.
Pravděpodobně posíláte souřadnice, které jsou mimo dosah. Část kódu, která kontroluje zeměpisnou délku a šířku při provádění $near dotazů s maximální vzdáleností (GeoParser::parsePointWithMaxDistance
metoda v geoparser.cpp.">geoparser.cpp. ):
bool isValidLngLat(double lng, double lat) {
return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}
Pokud jsou souřadnice mimo rozsah centroid.flatUpgradedToSphere
bude false a to způsobí chybu, kterou dostáváte.
Měli byste buď změnit své souřadnice tak, aby byly v rozsahu, nebo nastavit spherical
parametr na hodnotu false, abyste se vyhnuli této chybě.
Query.Near("Location", location.Geography.Longitude,
location.Geography.Latitude, location.Radius / 6371000, false)