【发布时间】:2014-09-08 22:13:10
【问题描述】:
我正在使用带有 Rails 4 的 Mongoid 3.1.6。我需要找到“靠近”某个坐标的所有对象。对于搜索的每个结果,我需要显示与搜索坐标的距离。根据 Mongoid Documentation
...来自 $geoNear 查询的每个实例化文档都将获得一个特殊的 动态属性 geo_near_distance 将可用,只要 文档在内存中。
但我无法访问Object.geo_near_distance
我在控制器中的查询...
@objects = Object.geo_near([-118.4451, 34.0633]).max_distance(10)
编辑#1
一些额外的细节
如果在 MongoDB 中使用以下查询
db.runCommand( { geoNear: "objects",
near: [ -73.95269,40.77578],
spherical: true
})
我看到一个包含 100 个元素的数组。每个元素有 2 个属性。第一个,'dis' 具有类似 '0.000123' 的值(注意:这不是公里或英里),第二个属性是结果对象本身。
现在我已将查询更改为 Mongoid 以...
@objects = Object.geo_near([-118.4451, 34.0633]).spherical.max_distance(10)
还是没有结果。 提前感谢您的帮助。
【问题讨论】:
标签: ruby-on-rails mongodb ruby-on-rails-4 mongoid mongoid3