首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蒙哥德,通过地理空间计算找不到模型

蒙哥德,通过地理空间计算找不到模型
EN

Stack Overflow用户
提问于 2015-07-27 05:24:46
回答 2查看 36关注 0票数 0

我的模型A包含以下字段:

代码语言:javascript
复制
field :location, type: Array

index( { location: '2d' }, { min: -180, max: 180 })

# Check if location is float
before_save :fix_location, if: :location_changed?
def fix_location
  self.location = self.location.map(&:to_f)
end

然后,我运行索引rake任务。

现在我有了[-4.430577206803733, 100.27785445050375]的模型

我想通过它的坐标查询这个模型,我使用模型的相同坐标:

代码语言:javascript
复制
loc = [-4.430577206803733, 100.27785445050375]
distance = 50 #km

models = A.where(location: {"$near" => loc, "$maxDistance" => distance.fdiv(111.12)})

当我运行这段代码时,它不会返回任何内容。我改变了loc的值,这个值接近我的坐标,它仍然没有给出任何信息。

我错过了什么?

====更新====

我已将代码更改为:

代码语言:javascript
复制
models = A.where(location: {"$near" => {lng: 100.27785445050375, lat: -4.430577206803733}, "$maxDistance" => distance.fdiv(111.12)})

仍然给我一个空数组

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-28 09:36:16

我找到了解决办法。我只是忘了运行索引耙任务。

票数 0
EN

Stack Overflow用户

发布于 2015-07-27 07:40:11

您正在以纬度、经度格式存储位置坐标。MongoDB首先期望经度。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31645473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档