

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.MSET
<a name="json-mset"></a>

Compatible con la versión 8.1 y posteriores de Valkey.

Establezca los valores JSON para varias claves. La operación es atómica. O bien se establecen todos los valores o ninguno.

**Sintaxis**

```
JSON.MSET key path json [ key path json ... ]
```
+ 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.

**Return**
+ Respuesta de cadena simple: OK si la operación se ha realizado correctamente.
+ Respuesta de error simple: si la operación no se ha ejecutado correctamente.

**Ejemplos**

Sintaxis de la ruta mejorada:

```
127.0.0.1:6379> JSON.MSET k1 . '[1,2,3,4,5]' k2 . '{"a":{"a":1, "b":2, "c":3}}' k3 . '{"a": [1,2,3,4,5]}'
OK
127.0.0.1:6379> JSON.GET k1
"[1,2,3,4,5]"
127.0.0.1:6379> JSON.GET k2
"{\"a\":{\"a\":1,\"b\":2,\"c\":3}}"
127.0.0.1:6379> JSON.MSET k2 $.a.* '0' k3 $.a[*] '0'
OK
127.0.0.1:6379> JSON.GET k2
"{\"a\":{\"a\":0,\"b\":0,\"c\":0}}"
127.0.0.1:6379> JSON.GET k3
"{\"a\":[0,0,0,0,0]}"
```

Sintaxis de la ruta restringida:

```
127.0.0.1:6379> JSON.MSET k1 . '{"name": "John","address": {"street": "123 Main St","city": "Springfield"},"phones": ["555-1234","555-5678"]}'
OK
127.0.0.1:6379> JSON.MSET k1 .address.street '"21 2nd Street"' k1 .address.city '"New York"'
OK
127.0.0.1:6379> JSON.GET k1 .address.street
"\"21 2nd Street\""
127.0.0.1:6379> JSON.GET k1 .address.city
"\"New York\""
```