JSON.SET - Amazon ElastiCache

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

JSON.SET

Establece JSON valores en la ruta.

Si la ruta de acceso llama a un miembro de objeto:

  • Si el elemento principal no existe, el comando devuelve un NONEXISTENT error.

  • Si el elemento principal existe pero no es un objeto, el comando devuelveERROR.

  • Si el elemento principal existe y es un objeto:

    • Si el miembro no existe, se anexará un miembro nuevo al objeto principal si y solo si el objeto principal es el último objeto secundario de la ruta. De lo contrario, el comando devuelve un NONEXISTENT error.

    • Si el miembro existe, su valor se sustituirá por el JSON valor.

Si la ruta requiere un índice de matriz:

  • Si el elemento principal no existe, el comando devuelve un NONEXISTENT error.

  • Si el elemento principal existe pero no es una matriz, el comando devuelveERROR.

  • Si el elemento principal existe pero el índice está fuera de los límites, el comando devuelve un OUTOFBOUNDARIES error.

  • Si el elemento principal existe y el índice es válido, el elemento se sustituirá por el nuevo JSON valor.

Si la ruta solicita un objeto o una matriz, el valor (objeto o matriz) se sustituirá por el nuevo JSON valor.

Sintaxis

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

[NX | XX] Donde puede tener 0 o 1 de [NX | XX] identificadores.

  • clave (obligatoria): una clave de Valkey o Redis de OSS tipo JSON documento.

  • ruta (obligatoria): una JSON ruta. Para una clave nueva, la JSON ruta debe ser la raíz «.».

  • NX (opcional): si la ruta es la raíz, establezca el valor solo si la clave no existe. Es decir, inserte un nuevo documento. Si la ruta no es la raíz, establezca el valor solo si la ruta no existe. Es decir, inserte un valor en el documento.

  • XX (opcional): si la ruta es la raíz, establezca el valor solo si la clave existe. Es decir, reemplace el documento existente. Si la ruta no es la raíz, establezca el valor solo si la ruta existe. Es decir, actualice el valor existente.

Devolución

  • Cadena simple ‘OK’ en caso de éxito.

  • Es nulo si no se cumple la condición NX o XX.

Ejemplos

Sintaxis de la ruta mejorada:

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

Sintaxis de la ruta restringida:

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