从Near查询中检索距离“dis”结果

时间:2012-01-10 21:02:35

标签: mongodb mongodb-.net-driver

我已经设置了一个可以很好地运行的地理空间查询,但是我希望得到每个结果的距离。

鉴于查询:

var query = Query.Near("Location", longitude, latitude);
var places = mongoDb.GetCollection<Place>("places").Find(near);

如何从“地点”中检索每个元素的距离?

1 个答案:

答案 0 :(得分:3)

我不知道你是否可以与mongo保持距离,但我过去所做的只是使用Haversine公式来获取数据后的距离。

您可以找到我使用的实现 here

编辑:抱歉,您可以从Mongo返回距离,但不能使用Query.Near()。您需要使用集合上的GeoNear函数。

 mongoDb.GetCollection<Place>("places").GeoNear(Query.Null, latitude, longitude, maxDistance);

这将返回一个GeoNearResult<Place>,它将包含一个Hits属性,IEnumurable<Hit>将包含一个Distance属性和一个包含您的位置对象的文档属性。