Vous pouvez utiliser le $geoNear
étape de pipeline agrégée pour produire une distance à partir du point interrogé :
db.new_stores.aggregate([
{ "$geoNear": {
"near": {
"type": "Point",
"coordinates": [ -81.093699, 32.074673 ]
},
"maxDistance": 500 * 1609,
"spherical": true,
"distanceField": "distance",
"distanceMultiplier": 0.000621371
}}
]).pretty()
Cela vous permet de spécifier "distanceField"
qui produira un autre champ dans les documents de sortie contenant la distance depuis le point interrogé. Vous pouvez également utiliser "distanceMultiplier"
pour appliquer toute conversion à la distance de sortie selon les besoins (c'est-à-dire mètres en miles, et en notant que toutes les distances GeoJSON sont renvoyées en mètres)
Il y a aussi le geoNear
commande avec des options similaires, mais elle ne renvoie bien sûr pas de curseur en sortie.