Definición
$polygonEspecifica un polÃgono para una geoespacial
$geoWithinquery en legacy coordinate pairs. La query devuelve pares que están dentro de los lÃmites del polÃgono. El operador no query objetos GeoJSON.Para definir el polÃgono, especifica un arreglo de puntos de coordenadas:
{ <location field>: { $geoWithin: { $polygon: [ [ <x1> , <y1> ], [ <x2> , <y2> ], [ <x3> , <y3> ], ... ] } } } El último punto siempre está vinculado implÃcitamente al primero. Puedes especificar tantos puntos, es decir, lados, como desees.
Importante
Si usa longitud y latitud, debe especificar primero la longitud.
Comportamiento
El operador $polygon calcula distancias utilizando geometrÃa plana (planar).
Las aplicaciones pueden usar $polygon sin necesidad de un Ãndice geoespacial. Sin embargo, los Ãndices geoespaciales permiten realizar consultas mucho más rápidas que sus equivalentes sin Ãndice.
Ejemplo
La siguiente query devuelve todos los documentos que tienen coordenadas dentro del polÃgono definido por [ 0 , 0 ], [ 3 , 6 ] y [ 6 , 0 ]:
db.places.find( { loc: { $geoWithin: { $polygon: [ [ 0 , 0 ], [ 3 , 6 ], [ 6 , 0 ] ] } } } )