更新多个 jsonb 值

Update multiple jsonb values

我试图每个月创建一个 cron 到 运行 以在带有 postgres 数据库的 ndoe 应用程序中更新 jsonb 字段的一些键。

在我的数据库中,我有一个 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= AND NOT deleted;

节点:

client.query("UPDATE devices SET data=jsonb_set(data::jsonb,'{disk_alert}','false'::jsonb,true), modified_date=NOW() WHERE id= AND NOT deleted", [deviceId]

但是如何添加其他键 "consumptions_alert" 和 "temperatures_alert" ??我读了一些关于使用连接 || 的东西运营商,但如何做到这一点?

您可以像这样使用连接运算符:

UPDATE devices SET 
    data = data::jsonb || '{"disk_alert": false, "temepratures_alert": false}',
    modified_date = NOW() 
WHERE id= AND NOT deleted;