JSON.SET - Amazon ElastiCache

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.

JSON.SET

Legt JSON Werte für den Pfad fest.

Wenn der Pfad ein Objektmitglied aufruft:

  • Wenn das übergeordnete Element nicht existiert, gibt der Befehl einen NONEXISTENT Fehler zurück.

  • Wenn das übergeordnete Element existiert, aber kein Objekt ist, kehrt der Befehl zurückERROR.

  • 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 einen NONEXISTENT Fehler 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 einen NONEXISTENT Fehler zurück.

  • Wenn das übergeordnete Element existiert, aber kein Array ist, gibt der Befehl zurückERROR.

  • Wenn das übergeordnete Element existiert, der Index jedoch außerhalb der Grenzen liegt, gibt der Befehl einen OUTOFBOUNDARIES Fehler 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 ein Array aufruft, wird der Wert (Objekt oder Array) durch den neuen JSON Wert ersetzt.

Syntax

JSON.SET <key> <path> <json> [NX | XX]

[NX | XX] Wo Sie 0 oder 1 von [NX | XX] Identifikatoren haben können.

  • key (erforderlich) — Ein Valkey- oder OSS Redis-Schlüssel vom JSON Dokumenttyp.

  • path (erforderlich) — Ein 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. Das heißt, sie fügen ein neues Dokument ein. Wenn der Pfad nicht der Stamm ist, legen Sie den Wert nur fest, wenn der Pfad nicht existiert. Das heißt, Sie fügen 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. Das heißt, Sie ersetzen das vorhandene Dokument. Wenn der Pfad nicht der Stamm ist, legen Sie den Wert nur fest, wenn der Pfad existiert. Das heißt, Sie aktualisieren 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