Anda menggunakan MongoDB 2.6.1 atau lebih tinggi karena kode yang Anda lihat telah ditambahkan sebagai perbaikan untuk JIRA-13666 masalah.
Masalahnya adalah beberapa kueri $near akan membuat server MongoDB crash saat dipanggil dengan koordinat lama yang berada di luar jangkauan.
Anda mungkin mengirim koordinat yang berada di luar jangkauan. Bagian kode yang memeriksa garis bujur dan garis lintang saat melakukan kueri $near dengan jarak maksimum (GeoParser::parsePointWithMaxDistance
metode di geoparser.cpp
):
bool isValidLngLat(double lng, double lat) {
return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}
Jika koordinat di luar jangkauan centroid.flatUpgradedToSphere
akan salah dan itu akan menyebabkan kesalahan yang Anda terima.
Anda harus mengubah koordinat Anda menjadi dalam jangkauan atau mengatur spherical
parameter ke false untuk menghindari kesalahan ini.
Query.Near("Location", location.Geography.Longitude,
location.Geography.Latitude, location.Radius / 6371000, false)