Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

$polygon (operador de predicado de query)

$polygon

Especifica un polígono para una geoespacial $geoWithin query 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.

El operador $polygon calcula distancias usando geometría plana (plana).

Las aplicaciones pueden usar $polygon sin tener un índice geoespacial. Sin embargo, los índices geoespaciales permiten consultas mucho más rápidas que sus equivalentes no indexados.

Solo el índice geoespacial 2d admite el operador $polygon.

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 ] ] }
}
}
)