当我在MongoDB中进行地理空间查询时,如何从我想要的点返回距离?

时间:2010-10-29 22:28:42

标签: python mongodb geospatial database

for post in db.datasets.find({"loc":{"$near":[50,50]}}).limit(10):

如何获取文档与“50,50”之间的距离?

1 个答案:

答案 0 :(得分:1)

使用“geoNear”命令将返回“dis”值作为结果的一部分。将此值乘以您选择的单位的地球半径将为您提供该结果与原始位置之间的距离。

例如,“places”是集合的名称,而原始点的lat / lng是50,50。

db.command( { geoNear : "places" , near : [50,50] } );

将以格式返回结果:

[
    {
        "dis" : 0.3886630122897946,
        "obj" : {
            "_id" : ObjectId("4d9123026ccc7e2cf22925c4"),
            "pos" : {
                "lon" : -10,
                "lat" : -20
            }
        }
    }
]

将每个结果的“dis”值乘以6371将得到以km为单位的距离,而3959则给出里程。

Mongo docs中有更多详细信息和示例。