从MongoDB查询时如何获得距离(地理空间概念)

时间:2016-02-19 09:37:09

标签: mongodb

我在Robomongo / cli中使用此查询来获取最接近给定坐标的记录,该记录正常工作。

现在如何从相同的查询中得到均匀的距离?

以下是我的查询

db.places.find(
{
    loc : 
    { 
        $near : 
        { 
            $geometry : 
            {
                type : "Point",
                coordinates : [12.974729, 77.609375],
                $maxDistance : 2000
            }
        }
    }
)

JSON文件

{
    "_id" : ObjectId("56c6becd8586e7a757260d62"),
    "name" : "address here",
    "loc" : {
        "type" : "Point",
        "coordinates" : [ 
            12.9802900000000001, 
            77.5857400000000013
        ]
    }
}

1 个答案:

答案 0 :(得分:1)

您可以使用GeoNear命令返回统计信息,包括average distance

db.runCommand( {
    geoNear: "places" ,
    near: { type: "Point", coordinates: [12.974729, 77.609375] },
    spherical: true,
    maxDistance: 2000
}).stats.avgDistance