1
私は毎月jsonbフィールドのいくつかのキーを更新するためにcronを作成しようとしています。これは、ndoeアプリケーションでpostgresデータベースを更新します。私のデータベースで複数のjsonb値を更新する
私は "disk_alert"、 "temepratures_alert"、 "consumptions_alert" などのキーを使用してjsonbフィールドを持っていると私は
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"と "temperatures_alert"を追加する方法はありますか?私は共同研究を使うことについて何かを読んだ||演算子が、どのようにこれを行うには?
これはエラー「{エラー:列 『提起データを私は』タイプJSONであるが、発現は、text型である」 UPDATEデバイスを実行しようとしています。SET data = data || id = $ 1かつ削除されていない –
'data'列がjson型の場合は、{'disk_alert':false、 'temper_alert':false、 'ram_alert':false、 'cpu_alert':false} '、modified_date = NOW更新された答えのように、それをjsonbにキャストします。 – klin
キャストでそれは働いた..ありがとう –