私は.where(:attr => [val1, val2, val3])
を実行することができ、それらのいずれかに一致するすべての行を返すことになります。val1-3
Postgresql jsonb(Rails) - 1つのjson属性で配列を介して複数の値を照会します
私はPostgres/Postgresqlを使用しており、jsonbタイプを持っています。同様のことをしたいと思います。 PsuedoCode:.where("col @> ?", {attr: [val1, val2, val3]}.to_json)
が返されますが、これは何も返しません。つまり、個々の値ではなく、配列全体の値を見つけようとしています。val1
、val2
、val3
?
jsonbクエリで、単一の属性として複数の値を渡す方法はありますか?
私は.where("attr @> {.. val1 ...} OR attr @> {... val2 ..} ...")
を行うことができましたが、より良い方法があるようです。
https://www.postgresql.org/docs/9.4/static/functions-json.htmlからさまざまなことを試しましたが、解決策があるようです。
甘い!私は今日それをテストし、あなたに戻ってきます! – Taysky
素晴らしい作品!ありがとう! (array [?] :: jsonb []) "、[{attr:1}、{attr:2}]。map(&:to_json))' !! – Taysky