Puedes usar el $geoNear
etapa de tubería agregada para producir una distancia desde el punto 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()
Esto le permite especificar "distanceField"
que producirá otro campo en los documentos de salida que contiene la distancia desde el punto consultado. También puedes usar "distanceMultiplier"
para aplicar cualquier conversión a la distancia de salida según sea necesario (es decir, metros a millas, y teniendo en cuenta que todas las distancias GeoJSON se devuelven en metros)
También está el geoNear
comando con opciones similares, pero por supuesto no devuelve un cursor como salida.