使用大于/小于的搜索Postgres JSON类型

时间:2015-06-10 07:49:52

标签: ruby-on-rails json postgresql

我使用rails 4为api存储JSON数据类型的哈希值,并且需要搜索符合<&amp;的散列值的值。 >条件。

使用像{location:{&#34; lat&#34;:-112,&#34; lng&#34;:33}}之类的哈希值,例如,我需要能够找到一系列lat和多头。

类似的东西:

Place.where("location ->> "lng" < -111 && > -113)

虽然Postgres 9.3不支持这种情况,但是有没有办法解决这个问题,而不使用类似的东西:

Place.all.select { |place| place.location["lng"] < -111 && > -113 }

1 个答案:

答案 0 :(得分:2)

我之前是如何查询Place.where("location ->> 'lng' < ?", -111)稍微不正确的

由于某些原因,您必须按文字进行搜索(我确定有人可以在评论中回答为什么会这样),因此稍微改变查询Place.where("location ->> 'lng' < ?", "-111")似乎有效!