Вы можете использовать этап агрегатного конвейера $geoNear
для создания расстояния от запрашиваемой точки:
db.new_stores.aggregate([
{ "$geoNear": {
"near": {
"type": "Point",
"coordinates": [ -81.093699, 32.074673 ]
},
"maxDistance": 500 * 1609,
"spherical": true,
"distanceField": "distance",
"distanceMultiplier": 0.000621371
}}
]).pretty()
Это позволяет указать "distanceField"
, который будет производить другое поле в выходных документах, содержащих расстояние от запрашиваемой точки. Вы также можете использовать "distanceMultiplier"
для применения любого преобразования на выходное расстояние по мере необходимости (т. Е. Метров до миль и отмечая, что все расстояния GeoJSON возвращаются в метрах)
Существует также geoNear
] с аналогичными параметрами, но он, конечно, не возвращает курсор в качестве вывода.