Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Legt JSON-Werte für den Pfad fest.
Wenn der Pfad ein Objektmitglied aufruft:
Wenn das übergeordnete Element nicht existiert, gibt der Befehl den Fehler NONEXISTENT zurück.
Wenn das übergeordnete Element existiert, aber kein Objekt ist, gibt der Befehl ERROR zurück.
Wenn das übergeordnete Element existiert und ein Objekt ist:
Wenn das Mitglied nicht existiert, wird ein neues Mitglied an das übergeordnete Objekt angehängt, wenn das übergeordnete Objekt das letzte untergeordnete Objekt im Pfad ist. Andernfalls gibt der Befehl den Fehler NONEXISTENT zurück.
Wenn das Mitglied existiert, wird sein Wert durch den JSON-Wert ersetzt.
Wenn der Pfad einen Array-Index aufruft:
Wenn das übergeordnete Element nicht existiert, gibt der Befehl den Fehler NONEXISTENT zurück.
Wenn das übergeordnete Element existiert, aber kein Array ist, gibt der Befehl ERROR zurück.
Wenn das übergeordnete Element existiert, der Index jedoch außerhalb der Grenzen liegt, gibt der Befehl den Fehler OUTOFBOUNDARIES zurück.
Wenn das übergeordnete Element existiert und der Index gültig ist, wird das Element durch den neuen JSON-Wert ersetzt.
Wenn der Pfad ein Objekt oder Array aufruft, wird der Wert (Objekt oder Array) durch den neuen JSON-Wert ersetzt.
Syntax
JSON.SET <key> <path> <json> [NX | XX]
[NX | XX] Dabei können Sie 0 oder 1 von [NX | XX] -Bezeichnern haben
key (erforderlich) — Schlüssel des JSON-Dokumenttyps
path (erforderlich) — JSON-Pfad. Für einen neuen Schlüssel muss der JSON-Pfad der Stamm „.“ sein.
NX (optional) — Wenn es sich bei dem Pfad um das Stammverzeichnis handelt, legen Sie den Wert nur fest, wenn der Schlüssel nicht existiert, d. h. fügen Sie ein neues Dokument ein. Wenn der Pfad nicht das Stammverzeichnis ist, legen Sie den Wert nur fest, wenn der Pfad nicht existiert, d. h. fügen Sie einen Wert in das Dokument ein.
XX (optional) — Wenn es sich bei dem Pfad um das Stammverzeichnis handelt, legen Sie den Wert nur fest, wenn der Schlüssel vorhanden ist, d. h. ersetzen Sie das vorhandene Dokument. Wenn es sich bei dem Pfad nicht um das Stammverzeichnis handelt, legen Sie den Wert nur fest, wenn der Pfad existiert, d. h. aktualisieren Sie den vorhandenen Wert.
Ergebnis
Einfache Zeichenfolge 'OK' bei Erfolg.
-
Null, wenn die NX- oder XX-Bedingungen nicht erfüllt sind.
Beispiele
Erweiterte Pfad-Syntax:
127.0.0.1:6379> JSON.SET k1 . '{"a":{"a":1, "b":2, "c":3}}'
OK
127.0.0.1:6379> JSON.SET k1 $.a.* '0'
OK
127.0.0.1:6379> JSON.GET k1
"{\"a\":{\"a\":0,\"b\":0,\"c\":0}}"
127.0.0.1:6379> JSON.SET k2 . '{"a": [1,2,3,4,5]}'
OK
127.0.0.1:6379> JSON.SET k2 $.a[*] '0'
OK
127.0.0.1:6379> JSON.GET k2
"{\"a\":[0,0,0,0,0]}"
Eingeschränkte Pfad-Syntax:
127.0.0.1:6379> JSON.SET k1 . '{"c":{"a":1, "b":2}, "e": [1,2,3,4,5]}'
OK
127.0.0.1:6379> JSON.SET k1 .c.a '0'
OK
127.0.0.1:6379> JSON.GET k1
"{\"c\":{\"a\":0,\"b\":2},\"e\":[1,2,3,4,5]}"
127.0.0.1:6379> JSON.SET k1 .e[-1] '0'
OK
127.0.0.1:6379> JSON.GET k1
"{\"c\":{\"a\":0,\"b\":2},\"e\":[1,2,3,4,0]}"
127.0.0.1:6379> JSON.SET k1 .e[5] '0'
(error) OUTOFBOUNDARIES Array index is out of bounds