我有一个metadata
类型的jsonb
列。
我知道如何检查它是否包含特定的 key :
obj = Model.create
obj.metadata = {"foo"=>"1", "bar"=>{"baz"=>{"qux"=>2}}}
Model.where("(metadata->'bar') IS NOT NULL") # returns obj
我想知道,如何检查
baz
中是否有obj.metadata['bar']
key ,如果有的话,该如何查找更深层的嵌套 key ? 最佳答案
好的,找到了一种方法:
Model.where("(metadata -> 'bar' ->> 'baz') IS NOT NULL")
如果元数据具有更多嵌套的json:
obj.metadata = {"foo"=>"1", "bar"=>{"baz"=>{"qux"=>2}}}
我想看看是否
there's metadata['bar']['baz']['qux']
:Model.where("(metadata -> 'bar' -> 'baz' ->> 'qux') IS NOT NULL")
关于ruby-on-rails - 查询嵌套的jsonb Postgres列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39595822/