【发布时间】:2017-09-19 22:10:14
【问题描述】:
我的 Rails 5 应用程序中的类 (Klass) 上有一个 jsonb 数组属性 (array_attr)。该数组是一个哈希数组。一些散列包含其他不包含的键。例如一个哈希数组可能
[{'key1': 'val1'}]
还有一个
[{'key1': 'val1', 'key2': 'val2'}]
我想执行一个查询,返回 Klass 的所有实例,这些实例在 array_attr 中没有任何元素并定义了 key2。
类似:klasses = Klass.where("array_attr @> ?",[{"key2": nil}].to_json)
我也尝试在 Postgres 命令行中使用以下命令:
SELECT array_attr FROM klasses WHERE array_attr @> '[{"key2": null}]'
原始的 Postgres 查询作为答案也会很有帮助。我对它不是很流利,但如果我可以让它在命令行 Postgres 中工作,那么我就能让它在 Rails 中工作。
【问题讨论】:
标签: arrays postgresql hash ruby-on-rails-5 jsonb