$geoWithin (Dentro da Geometria)

Última atualização: 2026-10-09

$geoWithin (Dentro da Geometria)

$geoWithin encontra documentos cuja localização cai dentro de uma geometria fornecida: $box (retângulo), $polygon, $center (círculo planar), $centerSphere (círculo esférico) ou $geometry (GeoJSON). `{ loc: { $geoWithin: { $box: [[0, 0], [10, 10]] } } }`. Pontos de fronteira são incluídos; um índice 2dsphere ou 2d é obrigatório.

CategoriaGeoespacial
Versão do MongoDB2.4+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ <campo de localização>: { $geoWithin: { $geometry: <GeoJSON> } } }

⚙️ Parâmetros

campo de posiçãoO campo que armazena a localização.
geometria$box, $polygon, $center, $centerSphere ou $geometry.

Retorno:Cursor dos documentos correspondentes

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $geoWithin: lojas dentro de um retângulo
db.stores.find({
  loc: { $geoWithin: { $box: [[-73.98, 40.75], [-73.97, 40.76]] } }
})

// Polígono GeoJSON
db.stores.find({
  loc: { $geoWithin: { $geometry: { type: 'Polygon', coordinates: [[[0, 0], [0, 1], [1, 1], [1, 0], [0, 0]]] } } }
})

Saída:

// Retorna lojas cuja localização cai dentro do retângulo ou do polígono

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QQual é a diferença entre $geoWithin e $near?
A$geoWithin apenas testa contenção e não ordena; $near retorna resultados ordenados por distância.
Q$geoWithin suporta círculos?
ASim, $center desenha um círculo planar e $centerSphere um esférico.
QUm índice é obrigatório para $geoWithin?
ASim, um índice 2dsphere ou 2d é obrigatório.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%