

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# JSON.MSET
<a name="json-mset"></a>

Valkey 버전 8.1 이상에서 지원됩니다.

여러 키의 JSON 값을 설정합니다. 작업은 원자성입니다. 모든 값이 설정되거나 아무 값도 설정되지 않습니다.

**구문**

```
JSON.MSET key path json [ key path json ... ]
```
+ 경로가 객체 멤버를 호출하는 경우
  + 상위 요소가 없는 경우, 다음 명령은 NONEXISTENT 오류를 반환합니다.
  + 상위 요소가 있지만 객체가 아닌 경우, 명령은 ERROR를 반환합니다.
  + 상위 요소가 있고 객체인 경우
    + 멤버가 없으면 상위 객체가 경로의 마지막 하위 객체인 경우에만 새 멤버는 상위 객체에 추가됩니다. 그렇지 않으면 명령은 NONEXISTENT 오류를 반환합니다.
    + 멤버가 있으면 해당 값이 JSON 값으로 대체됩니다.
+ 경로가 배열 인덱스를 호출하는 경우
  + 상위 요소가 없는 경우, 다음 명령은 NONEXISTENT 오류를 반환합니다.
  + 상위 요소가 있지만 배열이 아닌 경우, 명령은 ERROR를 반환합니다.
  + 상위 요소가 있지만 인덱스가 범위를 벗어난 경우, 명령은 OUTOFBOUNDARIES 오류를 반환합니다.
  + 상위 요소가 있고 인덱스가 유효하면 요소는 새 JSON 값으로 대체됩니다.
+ 경로가 객체 또는 배열을 호출하는 경우 값(객체 또는 배열)은 새 JSON 값으로 대체됩니다.

**반환**
+ 단순 문자열 회신: 작업이 성공한 경우 '확인'입니다.
+ 단순 오류 응답: 작업이 실패한 경우입니다.

**예**

향상된 경로 구문.

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

제한된 경로 구문.

```
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\""
```