Bạn đang sử dụng MongoDB 2.6.1 trở lên vì mã bạn đang xem đã được thêm vào làm bản sửa lỗi cho JIRA-13666 vấn đề.
Vấn đề là một số truy vấn gần $ sẽ làm hỏng máy chủ MongoDB khi được gọi với tọa độ kế thừa nằm ngoài phạm vi.
Có thể bạn đang gửi tọa độ nằm ngoài phạm vi. Phần mã kiểm tra kinh độ và vĩ độ khi thực hiện truy vấn $ gần với khoảng cách tối đa (GeoParser::parsePointWithMaxDistance
phương thức trong geoparser.cpp
):
bool isValidLngLat(double lng, double lat) {
return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}
Nếu tọa độ nằm ngoài phạm vi centroid.flatUpgradedToSphere
sẽ sai và điều đó sẽ gây ra lỗi bạn đang nhận được.
Bạn nên thay đổi tọa độ của mình thành phạm vi hoặc đặt spherical
tham số thành false để tránh mắc phải lỗi này.
Query.Near("Location", location.Geography.Longitude,
location.Geography.Latitude, location.Radius / 6371000, false)