Você pode usar o
$geoNear
estágio de pipeline agregado para produzir uma distância do ponto consultado: db.new_stores.aggregate([
{ "$geoNear": {
"near": {
"type": "Point",
"coordinates": [ -81.093699, 32.074673 ]
},
"maxDistance": 500 * 1609,
"spherical": true,
"distanceField": "distance",
"distanceMultiplier": 0.000621371
}}
]).pretty()
Isso permite que você especifique
"distanceField"
que produzirá outro campo nos documentos de saída contendo a distância do ponto consultado. Você também pode usar "distanceMultiplier"
para aplicar qualquer conversão à distância de saída conforme necessário (ou seja, metros para milhas e observando que todas as distâncias GeoJSON são retornadas em metros) Há também o
geoNear
comando com opções semelhantes, mas é claro que não retorna um cursor como saída.