jsonb_set函数,有则更新,无则插入
jsonb_set(target jsonb, path text[], new_value jsonb[, create_missing boolean])
target jsonb:要发生插入的目标jsonb
path text[]:’{0,f3}‘数组的第几个,键是谁;’{0}'数组的第几个
new_value jsonb: 值是谁
create_missing boolean:若为true,有则更新,无则插入;若为false,有则更新,无则返回原值
举例:
select jsonb_set('[{"f1":1,"f2":null},2]', '{0,f3}','[2,3,4]');
select jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f3}','[2,3,4]', false);
select jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f3}','[2,3,4]', true);
select jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f1}','[2,3,4]', false);
select jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f1}','[2,3,4]', true);
select jsonb_set('[{"f1":1,"f2":null},2]', '{0}','[2,3,4]');
jsonb_array_elements函数:把一个json数组扩展成一个json值集合
jsonb_array_elements(jsonb)
jsonb:目标jsonb数组
举例:
select * from jsonb_array_elements('[1,true, [2,false]]')