【发布时间】:2015-06-10 07:49:52
【问题描述】:
我使用 Rails 4 将哈希存储在 JSON 数据类型中,需要在哈希中搜索满足 < 和 > 条件的值。
例如,使用像 {location: {"lat": -112, "lng": 33}} 这样的哈希,我需要能够找到经纬度的范围。
类似:
Place.where("location ->> "lng" < -111 && > -113)
虽然 Postgres 9.3 似乎不支持这一点,但有没有一种方法可以在不使用类似的情况下解决这个问题:
Place.all.select { |place| place.location["lng"] < -111 && > -113 }
【问题讨论】:
-
places 表中的属性是什么?
-
存储在 JSON 中的唯一属性是位置,因为它是纬度和经度
-
你在地方表上发起查询..如何?
-
Place.where("location ->> 'lng' < ?", -111)我刚刚意识到这是错误的,因为您必须根据文本进行搜索,对吗?所以我相信“-111”让它工作...... -
您试图将 111 和 113 与哪一列进行比较?地点是属于:位置吗?
标签: ruby-on-rails json postgresql