JSON.SET - Amazon ElastiCache (Redis OSS)

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

JSON.SET

Définit les valeurs JSON au niveau du chemin.

Si le chemin fait appel à un membre d'objet :

  • Si l'élément parent n'existe pas, la commande renvoie une erreur NONEXISTENT.

  • Si l'élément parent existe, mais n'est pas un objet, la commande renvoie une erreur ERROR.

  • Si l'élément parent existe et est un objet :

    • Si l'élément n'existe pas, un nouvel élément sera ajouté à l'objet parent si et seulement si l'objet parent est le dernier enfant dans le chemin. Sinon, la commande renvoie une erreur NONEXISTENT.

    • Si le membre existe, sa valeur sera remplacée par la valeur JSON.

Si le chemin fait appel à un index de tableau :

  • Si l'élément parent n'existe pas, la commande renvoie une erreur NONEXISTENT.

  • Si l'élément parent existe mais n'est pas un tableau, la commande renvoie ERROR.

  • Si l'élément parent existe, mais que l'index est hors limites, la commande renvoie une erreur OUTOFBOUNDARIES.

  • Si l'élément parent existe et que l'index est valide, l'élément sera remplacé par la nouvelle valeur JSON.

Si le chemin fait appel à un objet ou à un tableau, la valeur (objet ou tableau) sera remplacée par la nouvelle valeur JSON.

Syntaxe

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

[NX | XX] Où vous pouvez avoir 0 ou 1 des identifiants [NX | XX].

  • clé (obligatoire) — Une clé Redis OSS de type document JSON.

  • path (obligatoire) : chemin JSON. Pour une nouvelle clé Redis OSS, le chemin JSON doit être la racine «. ».

  • NX (facultatif) — Si le chemin est la racine, définissez la valeur uniquement si la clé Redis OSS n'existe pas. C'est-à-dire, insérer un nouveau document. Si le chemin n'est pas la racine, définir la valeur uniquement si le chemin n'existe pas. C'est-à-dire, insérer une valeur dans le document.

  • XX (facultatif) — Si le chemin est la racine, définissez la valeur uniquement si la clé Redis OSS existe. C'est-à-dire, remplacer le document existant. Si le chemin n'est pas la racine, définir la valeur uniquement si le chemin existe. C'est-à-dire, mettre à jour la valeur existante.

Retour

  • Simple String « OK » en cas de succès.

  • Valeur nulle si la condition NX ou XX n'est pas remplie.

Exemples

Syntaxe de chemin améliorée :

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]}"

Syntaxe de chemin restreinte :

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