Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / / /

$polygon

Nesta página

  • Definição
  • Comportamento
  • Exemplo
$polygon

Especifica um polígono para uma query geoespacial $geoWithin em pares de coordenadas legadas. 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.

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.

Somente o índice geoespacial 2d aceita o operador $polygon.

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 ] ] }
}
}
)
← $minDistance