JSON.SET - Amazon MemoryDB

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éfinissez des valeurs JSON sur le chemin.

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

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

  • Si l'élément parent existe mais n'est pas un objet, la commande renvoie 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 renverra une erreur INEXISTANTE.

    • 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 INEXISTANTE.

  • 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 l'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) — clé Redis OSS de type document JSON

  • chemin (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érez un nouveau document. Si le chemin n'est pas la racine, définissez la valeur uniquement si le chemin n'existe pas, c'est-à-dire insérez 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 remplacez le document existant. Si le chemin n'est pas la racine, définissez la valeur uniquement si le chemin existe, c'est-à-dire mettez à 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