MongoDB print distance between two points

后端 未结 3 1849
攒了一身酷
攒了一身酷 2020-11-28 12:46

When I am firing this query on MongoDB, I am getting all the places in the proximity of 500 miles to the specified co-ordinates. But I want to know the exact distance betwee

3条回答
  •  甜味超标
    2020-11-28 13:28

    You can use the $geoNear aggregate pipeline stage to produce a distance from the queried point:

     db.new_stores.aggregate([
        { "$geoNear": {
            "near": {
                "type": "Point",
                "coordinates": [ -81.093699, 32.074673 ]
            }, 
            "maxDistance": 500 * 1609,
            "spherical": true,
            "distanceField": "distance",
            "distanceMultiplier": 0.000621371
        }}
    ]).pretty()
    

    This allows you to specify "distanceField" which will produce another field in the output documents containing the distance from the queried point. You can also use "distanceMultiplier" to apply any conversion to the output distance as required ( i.e meters to miles, and noting that all GeoJSON distances are returned in meters )

    There is also the geoNear command with similar options, but it of course does not return a cursor as output.

提交回复
热议问题