Ich versuche, ein Cron zu erstellen, um jeden Monat einige Schlüssel eines Jsonb-Felds in einer ndoe-Anwendung mit Postgres-Datenbank zu aktualisieren.Mehrere JSONB-Werte aktualisieren
In meiner Datenbank habe ich eine jsonb Feld mit Tasten wie "disk_alert", "temepratures_alert", "consumptions_alert" und ich will etwas tun, wie
Postgres:
UPDATE devices SET
data=jsonb_set(data::jsonb,'{disk_alert}','false'::jsonb,true),
modified_date=NOW()
WHERE id=$1 AND NOT deleted;
Knoten:
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]
Aber wie die anderen Schlüssel hinzufügen "consumptions_alert" und "temperature_alert" ?? Ich lese etwas über die Verwendung von CoCnatenation || Operator, aber wie geht das?
Dies wirft den Fehler „{Fehler: Spalte‚Daten‘vom Typ json ist aber Ausdruck vom Typ Text“ I‘ m versuchen, UPDATE-Geräte SET Daten = Daten || {'disk_alert': false, 'temperature_alert': false, 'ram_alert': false, 'cpu_alert': false} ', modified_date = NOW() WHERE id = $ 1 UND NICHT gelöscht –
Wenn die Spalte 'data' vom Typ json ist dann werfen Sie es wie in der aktualisierten Antwort auf jsonb. – klin
Mit der Besetzung hat es funktioniert .. danke –