Du använder MongoDB 2.6.1 eller högre eftersom koden du tittar på lades till som en fix för en JIRA-13666 problem.
Problemet var att vissa $near-frågor kraschade MongoDB-servern när de anropades med äldre koordinater som ligger utanför räckvidden.
Du skickar förmodligen koordinater som ligger utanför räckhåll. Den del av koden som kontrollerar longitud och latitud när man gör $near-frågor med maxavstånd (GeoParser::parsePointWithMaxDistance
metod i geoparserc.c">geoparserc. ):
bool isValidLngLat(double lng, double lat) {
return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}
Om koordinaterna ligger utanför intervallet centroid.flatUpgradedToSphere
kommer att vara falskt och det kommer att orsaka felet du får.
Du bör antingen ändra dina koordinater så att de ligger inom intervallet eller ställa in spherical
parametern till false för att undvika att få det här felet.
Query.Near("Location", location.Geography.Longitude,
location.Geography.Latitude, location.Radius / 6371000, false)