MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Erro do MongoDb 2.6.1:17444 - O ponto legado está fora dos limites para consulta esférica


Você está usando o MongoDB 2.6.1 ou superior porque o código que está vendo foi adicionado como uma correção para um JIRA-13666 questão.

O problema era que algumas consultas $near travavam o servidor MongoDB quando chamadas com coordenadas legadas que estão fora do alcance.

Você provavelmente está enviando coordenadas que estão fora de alcance. A parte do código que verifica a longitude e a latitude ao fazer consultas $near com distância máxima (GeoParser::parsePointWithMaxDistance método em geoparser.cpp ):
bool isValidLngLat(double lng, double lat) {
    return lat >= -90 && lat <= 90 && lng >= -180 && lng <= 180;
}

Se as coordenadas estiverem fora do intervalo centroid.flatUpgradedToSphere será false e isso causará o erro que você está recebendo.

Você deve alterar suas coordenadas para estarem dentro do alcance ou definir spherical parâmetro para false para evitar esse erro.
Query.Near("Location", location.Geography.Longitude, 
           location.Geography.Latitude, location.Radius / 6371000, false)