And*_*eko 6 postgresql activerecord ruby-on-rails ruby-on-rails-5 ruby-on-rails-6
我有一个metadata类型的列jsonb。
我知道如何检查它是否包含特定的键:
obj = Model.create
obj.metadata = {"foo"=>"1", "bar"=>{"baz"=>{"qux"=>2}}}
Model.where("(metadata->'bar') IS NOT NULL") # returns obj
Run Code Online (Sandbox Code Playgroud)
我想知道,我将如何检查是否有baz键输入,如果有,如何检查obj.metadata['bar']更深的嵌套键?
And*_*eko 15
好的,刚刚找到了一个方法:
Model.where("(metadata -> 'bar' ->> 'baz') IS NOT NULL")
Run Code Online (Sandbox Code Playgroud)
如果元数据有更多的嵌套 json:
obj.metadata = {"foo"=>"1", "bar"=>{"baz"=>{"qux"=>2}}}
Run Code Online (Sandbox Code Playgroud)
我想看看,如果there's metadata['bar']['baz']['qux']:
Model.where("(metadata -> 'bar' -> 'baz' ->> 'qux') IS NOT NULL")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2544 次 |
| 最近记录: |