supose我有下面的json
:response_body => {
"status" => "ok",
"um" => {
"a" => "a",
"b" => {
"c" => "ok"
}
}
实现我的搜索:
LogService.where(response_body: {"status" => "ok"})
答案 0 :(得分:18)
如果您使用Postgres作为数据库并且列实际上是json类型,您可以在Rails中使用这样的搜索:
LogService.where("response_body#>>'{status}' = 'ok'")
此#>>将走过json路径并进行搜索。 如果您只使用#> (只有一个>),它将返回剩余的json。
另一个例子,如果你想获得“c”=> “OK”
LogService.where("response_body#>>'{um, b, c}' = 'ok'")
我认为就是这样。