"1", "bar-6ren">
gpt4 book ai didi

ruby-on-rails - 查询嵌套的 jsonb Postgres 列

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

我有一个类型为 jsonbmetadata 列。

我知道如何检查它是否包含特定 key :

obj = Model.create
obj.metadata = {"foo"=>"1", "bar"=>{"baz"=>{"qux"=>2}}}
obj.save

Model.where("(metadata->'bar') IS NOT NULL") # returns obj

我想知道,我如何检查 obj.metadata['bar'] 中是否有 baz 键,如果有,还有更深的嵌套键?

最佳答案

好的,刚刚找到一个方法:

Model.where("(metadata -> 'bar' ->> 'baz') IS NOT NULL")

如果元数据有更多嵌套的json:

obj.metadata = {"foo"=>"1", "bar"=>{"baz"=>{"qux"=>2}}}

我想看看,如果有元数据['bar']['baz']['qux']:

Model.where("(metadata -> 'bar' -> 'baz' ->> 'qux') IS NOT NULL")

关于ruby-on-rails - 查询嵌套的 jsonb Postgres 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39595822/

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