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 devolverá un error INEXISTENTE.
Si el elemento principal existe pero no es un objeto, el comando devolverá 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 devolverá 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 devolverá un error INEXISTENTE.
Si el elemento principal existe pero no es una matriz, el comando devolverá ERROR.
Si el elemento principal existe pero el índice está fuera de los límites, el comando devuelve un error OUTOFBOUNDARIES.
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
clave (obligatorio): clave del tipo de documento JSON
ruta (obligatoria): una ruta JSON. Para una nueva clave, la ruta JSON debe ser la raíz “.”.
NX (opcional): si la ruta es la raíz, establezca el valor solo si la clave no existe; por ejemplo, insertar un nuevo documento. Si la ruta no es la raíz, establece el valor solo si la ruta no existe, es decir, inserta un valor en el documento.
XX (opcional): si la ruta es la raíz, establezca el valor solo si existe la clave; por ejemplo, reemplazar el documento existente. Si la ruta no es la raíz, establece el valor solo si la ruta existe, es decir, actualiza 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