Używasz MongoDB w wersji 2.6.1 lub nowszej, ponieważ kod, na który patrzysz, został dodany jako poprawka dla JIRA-13666 kwestia.
Problem polegał na tym, że niektóre zapytania $near powodowały awarię serwera MongoDB, gdy były wywoływane ze starszymi współrzędnymi, które są poza zakresem.
Prawdopodobnie wysyłasz współrzędne, które są poza zasięgiem. Część kodu, która sprawdza długość i szerokość geograficzną podczas wykonywania zapytań $near z maksymalną odległością (GeoParser::parsePointWithMaxDistance
metoda w geoparser.cpp
):
bool isValidLngLat(double lng, double lat) {
return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}
Jeśli współrzędne są poza zakresem centroid.flatUpgradedToSphere
będzie fałszywe i spowoduje to otrzymany błąd.
Powinieneś albo zmienić swoje współrzędne, aby były w zakresie, albo ustawić spherical
parametr na false, aby uniknąć otrzymania tego błędu.
Query.Near("Location", location.Geography.Longitude,
location.Geography.Latitude, location.Radius / 6371000, false)