0
私は、jsonb
カラムを含むPostgresテーブルを持っています。データは任意に深いです。私WHERE
句でJSONオブジェクトを指定してPostgres JSONクエリ - すべてのペアと一致し、順序を無視する
id | jsonb_data
---|----------------------
1 | '{"a":1}'
2 | '{"a":1,"b":2}'
3 | '{"a":1,"b":2,"c":{"d":4}}'
、私は、任意の順序で同じデータ、それ以上が含まれていないオブジェクトを含む行を検索したいのですが、。ネストされたオブジェクトを含めることをお勧めします。
SELECT * FROM table
WHERE json_match_ignore_order(jsonb_data, '{"b":2,"a":1}');
id | jsonb_data
---|-----------
2 | '{"a":1,"b":2}'
これは基本的に次のRubyコードと同じですが、可能であればデータベース内で実際に実行したいと思います。
table.select { |row| row.jsonb_data_as_a_hash == {b: 2, a: 1} }
どうすればいいですか?
優秀!私はそれがとても簡単だろうということを知らなかった:D – PJSCopeland