"ok", "um" => { "a" => "a", "b-6ren">
gpt4 book ai didi

ruby-on-rails - 使用 Active Record 搜索嵌套/多级 Postgres JSON 类型

转载 作者:行者123 更新时间:2023-11-29 11:16:50 24 4
gpt4 key购买 nike

假设我有下面的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'")

This #>> 将遍历 json 路径并进行搜索。如果您只使用 #>(只有一个 >),它将返回剩余的 json。

另一个例子,如果你想得到 "c"=> "ok"

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

我想就是这样。

关于ruby-on-rails - 使用 Active Record 搜索嵌套/多级 Postgres JSON 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23609331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com