$centerSphere
Nesta página
Definição
$centerSphere
Define um círculo para uma querygeoespacial do que utiliza geometria esférica. A query retorna documentos dentro dos limites do círculo. Você pode usar o operador
$centerSphere
em objetos GeoJSON e legacy coordinate pairs.Para usar
$centerSphere
, especifique um array que contenha:As coordenadas de grade do ponto central do círculo, e
O raio do círculo em radianos. Para calcular radianos, consulte Calcular distância usando geometria esférica.
{ <location field>: { $geoWithin: { $centerSphere: [ [ <x>, <y> ], <radius> ] } } } Importante
Se você utilizar longitude e latitude, especifique longitude primeiro.
Comportamento
Os aplicativos podem utilizar o $centerSphere
sem ter um índice geoespacial. No entanto, os índices geoespaciais suportam queries muito mais rápidas do que os equivalentes não indexados.
Ambos os índices geoespaciais 2dsphere e 2d suportam $centerSphere
.
Exemplo
O exemplo a seguir consulta coordenadas de grade e retorna todos os documentos em um raio de 10 milhas da longitude 88 W
e da latitude 30 N
. A query converte a distância em radianos dividindo pelo raio equatorial aproximado da Terra, 3963,2 milhas:
db.places.find( { loc: { $geoWithin: { $centerSphere: [ [ -88, 30 ], 10/3963.2 ] } } } )