我正在尝试创建一个cron来每月运行以更新jsonb字段的某些键,在带有postgres数据库的ndoe应用程序中。
在我的数据库中,我有一个jsonb字段,其中包含“disk_alert”,“temepratures_alert”,“consumptions_alert”之类的键,我想做类似的事情
Postgres的:
UPDATE devices SET
data=jsonb_set(data::jsonb,'{disk_alert}','false'::jsonb,true),
modified_date=NOW()
WHERE id=$1 AND NOT deleted;
节点:
client.query("UPDATE devices SET data=jsonb_set(data::jsonb,'{disk_alert}','false'::jsonb,true), modified_date=NOW() WHERE id=$1 AND NOT deleted", [deviceId]
但是如何添加其他键“consumptions_alert”和“temperature_alert”?我读了一些关于使用cocnatenation ||的内容运营商,但如何做到这一点?
答案 0 :(得分:0)
您可以像这样使用连接运算符:
UPDATE devices SET
data = data::jsonb || '{"disk_alert": false, "temepratures_alert": false}',
modified_date = NOW()
WHERE id=$1 AND NOT deleted;