As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
$geoNear
O estágio $geoNear de agregação retorna os documentos em ordem de proximidade a um ponto especificado. Ele calcula a distância do ponto e inclui a distância nos documentos de saída.
Parâmetros
-
near: o ponto a partir do qual calcular distâncias, especificado como GeoJSON ou coordenadas legadas. -
distanceField: o nome do campo para armazenar a distância calculada. -
spherical: Booleano indicando se a geometria esférica deve ser usada (necessária para pontos GeoJSON). -
maxDistance: opcional. Distância máxima do ponto central. -
minDistance: opcional. Distância mínima do ponto central. -
query: opcional. Critérios de filtro adicionais a serem aplicados. -
limit: opcional. Número máximo de documentos a serem devolvidos. -
key: opcional. Campo a ser usado para consulta geoespacial quando existirem vários índices geoespaciais.
Exemplo (MongoDB Shell)
O exemplo a seguir demonstra o uso do $geoNear palco para encontrar as lojas mais próximas de um determinado local.
Crie documentos de amostra
db.stores.createIndex({ location: "2dsphere" }); db.stores.insertMany([ { _id: 1, name: "Store A", location: { type: "Point", coordinates: [-122.4, 37.8] } }, { _id: 2, name: "Store B", location: { type: "Point", coordinates: [-122.5, 37.7] } }, { _id: 3, name: "Store C", location: { type: "Point", coordinates: [-122.3, 37.9] } } ]);
Exemplo de consulta
db.stores.aggregate([ { $geoNear: { near: { type: "Point", coordinates: [-122.4, 37.8] }, distanceField: "distance", spherical: true } } ]);
Saída
[
{ _id: 1, name: 'Store A', location: { type: 'Point', coordinates: [ -122.4, 37.8 ] }, distance: 0 },
{ _id: 3, name: 'Store C', location: { type: 'Point', coordinates: [ -122.3, 37.9 ] }, distance: 13877.82 },
{ _id: 2, name: 'Store B', location: { type: 'Point', coordinates: [ -122.5, 37.7 ] }, distance: 15557.89 }
]
Exemplos de código
Para ver um exemplo de código para usar o estágio de $geoNear agregação, escolha a guia do idioma que você deseja usar: