$polygon
Nesta página
Definição
$polygon
Especifica um polígono para uma query geoespacial
$geoWithin
em legacy coordinate pairs. A query retorna pares que estão dentro dos limites do polígono. O operador não executa queries para objetos GeoJSON.Para definir o polígono, especifique uma array de pontos de coordenadas:
{ <location field>: { $geoWithin: { $polygon: [ [ <x1> , <y1> ], [ <x2> , <y2> ], [ <x3> , <y3> ], ... ] } } } O último ponto está sempre implicitamente ligado ao primeiro. Você pode especificar quantos pontos, ou seja, lados, desejar.
Importante
Se você utilizar longitude e latitude, especifique longitude primeiro.
Comportamento
O operador $polygon
calcula distâncias utilizando geometria plana (planar).
Os aplicativos podem utilizar o $polygon
sem ter um índice geoespacial. No entanto, os índices geoespaciais suportam queries muito mais rápidas do que os equivalentes não indexados.
Exemplo
A seguinte query retorna todos os documentos que têm coordenadas que existem dentro do polígono definido por [ 0 , 0 ]
, [ 3 , 6 ]
e [ 6 , 0 ]
:
db.places.find( { loc: { $geoWithin: { $polygon: [ [ 0 , 0 ], [ 3 , 6 ], [ 6 , 0 ] ] } } } )