JSON.SET - Amazon ElastiCache

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 JSON les valeurs du chemin.

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

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

  • Si l'élément parent existe mais n'est pas un objet, la commande est renvoyéeERROR.

  • 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. Dans le cas contraire, la commande renvoie une NONEXISTENT erreur.

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

Si le chemin fait appel à un index de tableau :

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

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

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

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

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

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é Valkey ou Redis de OSS type JSON document.

  • chemin (obligatoire) — Un JSON chemin. Pour une nouvelle clé, le JSON chemin doit être la racine «. ».

  • NX (facultatif) — Si le chemin est la racine, définissez la valeur uniquement si la clé 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é 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