MongoDB imprime distancia entre dos puntos

Cuando estoy ejecutando esta consulta en MongoDB, obtengo todos los lugares en las proximidades de 500 millas a las coordenadas especificadas. Pero quiero saber la distancia exacta entre las coordenadas especificadas y la ubicación del resultado.

db.new_stores.find({ "geometry": { $nearSphere: { $geometry: { type: "Point", coordinates: [ -81.093699, 32.074673 ] }, $maxDistance: 500 * 3963 } } } ).pretty() 

Mi salida se ve así:

 { "_id" : ObjectId("565172058bc200b0db0f75b1"), "type" : "Feature", "geometry" : { "type" : "Point", "coordinates" : [ -80.148826, 25.941116 ] }, "properties" : { "Name" : "Anthony's Coal Fired Pizza", "Address" : "17901 Biscayne Blvd, Aventura, FL" } } 

También quiero saber la distancia de este lugar desde la coordenada especificada. Creé el índice 2dsphere en geometría.

Puede usar la etapa de $geoNear agregado $geoNear 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 contienen la distancia desde el punto consultado. También puede 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 comando geoNear con opciones similares, pero por supuesto no devuelve un cursor como salida.