PostgreSQL14でのjsonbの簡略化された構文

電報チャネルCrossthe Joinよると、リポジトリPostgresはKomichi落ち、jsonbでの作業が簡単になりました。角かっこを使用してjsonbの一部にアクセスできるようになりました。これは、読み取りと書き込みの両方で機能します。







さようならjsonb_setと他の松葉杖のような data = data - 'a' || '{"a":5}'









いくつかの例:



キーでオブジェクトの値を更新します。25はここでは数値ですが、割り当てられた値はjsonbでなければならないため、引用符で囲みます







-- (person_data   jsonb)
UPDATE users 
SET person_data['age'] = '25'; 
      
      





この更新は、空の(null)jsonbでも機能します。







name = Pashaフィールドでテーブルをフィルタリングします。Pashaは文字列ですが、jsonb形式でも記述されています: '"Pasha"'、したがって余分な二重引用符







SELECT * 
FROM users 
WHERE person_data['name'] = '"Pasha"';
      
      





キー「age」でオブジェクトの値を取得します







SELECT ('{"age": 25}'::jsonb)['age'];
      
      





または、長いパスを指定できます







SELECT ('{"a": {"b": {"c": 1}}}'::jsonb)['a']['b']['c'];
      
      





インデックスによる配列要素







SELECT ('[1, "2", null]'::jsonb)[1];
      
      





最も重要なのは、変更がpostgreSQL14に含まれることです。







構文の元のアイデアは、実装であるOlegBartunovに属しています-DmitryDolgov








All Articles