mongodb - 从近查询中检索距离 "dis"结果

标签 mongodb mongodb-.net-driver

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

给出查询:

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

如何检索“places”中每个元素的距离?

最佳答案

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

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

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

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

这将返回 GeoNearResult<Place>其 Hits 属性为 IEnumurable<Hit>它将包含 Distance 属性和包含您的地点对象的文档属性。

关于mongodb - 从近查询中检索距离 "dis"结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8810458/

相关文章:

node.js - 使用 Meteor 从 Mongo 同步读取数据

arrays - 如何在MongoDB中批量迭代?

node.js - Mongodb + 使用最后一个字段数据进行分组

c# - 如何使用 mongodb c# 驱动程序更新除 ID 之外的整个文档

c# - 如何在 C# mongo 驱动程序中设置复数集合名称?

.net-4.0 - MongoDB 和复杂数组搜索

mysql - 在MongoDB中,如何查询类似于Twitter的内容?

node.js - Mongoose 如何更新用户信息

c# - 将 Dictionary<DateTime,T> 序列化为 BSON 时出现 BsonSerializationException