$near (Perto, Ordenado por Distância)

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

$near (Perto, Ordenado por Distância)

$near retorna documentos geoespaciais ordenados por distância de um ponto, em ordem crescente. `{ loc: { $near: { $geometry: { type: 'Point', coordinates: [lng, lat] }, $maxDistance: 1000 } } }`. Exige um índice 2dsphere ou 2d e não pode ser combinado com outro $near ou $nearSphere na mesma consulta.

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

📝 Sintaxe

{ <campo de localização>: { $near: { $geometry: <Point>, $maxDistance: <metros> } } }

⚙️ Parâmetros

campo de posiçãoO campo que armazena a localização.
geometria PointUm GeoJSON Point com [longitude, latitude].
maxDistanceOpcional; distância máxima em metros.

Retorno:Cursor dos documentos correspondentes (crescente por distância)

▶ Exemplo

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

// $near: lojas a até 1000 m do ponto
db.stores.find({
  loc: { $near: {
    $geometry: { type: 'Point', coordinates: [-73.97, 40.75] },
    $maxDistance: 1000
  } }
})

Saída:

// Retorna lojas a até 1000 m, ordenadas por distância crescente

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO resultado de $near já vem ordenado?
ASim, em ordem crescente por distância — nenhum sort extra é necessário.
QUm índice é obrigatório para $near?
ASim, um índice 2dsphere ou 2d, caso contrário gera erro.
QQuando devo escolher $near em vez de $geoWithin?
AEscolha $near para ordenação por distância; $geoWithin apenas para contenção.
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%