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 valores JSON en la ruta.
Si la ruta de acceso llama a un miembro de objeto:
Si el elemento principal no existe, el comando regresa unerror INEXISTENTE.
Si el elemento principal existe pero no es un objeto, el comando regresa ERROR.
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 regresa un error INEXISTENTE.
Si el miembro existe, su valor se reemplazará por el valor JSON.
Si la ruta requiere un índice de matriz:
Si el elemento principal no existe, el comando regresa unerror INEXISTENTE.
Si el elemento principal existe pero no es una matriz, el comando regresa ERROR.
Si el elemento principal existe pero el índice está fuera de los límites, el comando regresa unerror FUERA DE LOS LÍMITES.
Si el elemento principal existe y el índice es válido, el elemento se reemplazará por el nuevo valor JSON.
Si la ruta llama a un objeto o matriz, el valor (objeto o matriz) se reemplazará por el nuevo valor JSON.
Sintaxis
JSON.SET <key> <path> <json> [NX | XX]
[NX | XX] Donde puede tener 0 o 1 de [NX | XX] identificadores.
key (obligatorio): una clave de Valkey o Redis OSS del tipo de documento JSON.
ruta (obligatoria): una ruta JSON. Para una nueva clave, la ruta de JSON 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 existe la clave. 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