ruby-on-rails – 如何使用活动记录在多级搜索json类型的postgres

我有下面的json
:response_body => {
       "status" => "ok","um" => {
           "a" => "a","b" => {
                   "c" => "ok"
           }
   }

实现我的搜索:

LogService.where(response_body: {"status" => "ok"})

解决方法

如果您使用Postgres作为数据库并且列实际上是json类型,您可以在Rails中使用如下搜索:
LogService.where("response_body#>>'{status}' = 'ok'")

这个#>>将走过json路径并进行搜索.
如果您只使用#> (只有一个>),它将返回剩余的json.

另一个例子,如果你想获得“c”=> “好”

LogService.where("response_body#>>'{um,b,c}' = 'ok'")

我认为就是这样.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...