기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
JSON.SET
경로에서 JSON 값을 설정합니다.
경로가 객체 멤버를 호출하는 경우
상위 요소가 없는 경우 명령은 NONEXISTENT 오류를 반환합니다.
상위 요소가 존재하지만 객체가 아닌 경우 명령은 를 반환합니다ERROR.
상위 요소가 있고 객체인 경우
멤버가 없으면 상위 객체가 경로의 마지막 하위 객체인 경우에만 새 멤버는 상위 객체에 추가됩니다. 그렇지 않으면 명령이 NONEXISTENT 오류를 반환합니다.
멤버가 있는 경우 해당 값이 JSON 값으로 대체됩니다.
경로가 배열 인덱스를 호출하는 경우
상위 요소가 없는 경우 명령은 NONEXISTENT 오류를 반환합니다.
상위 요소가 존재하지만 배열이 아닌 경우 명령은 를 반환합니다ERROR.
상위 요소가 존재하지만 인덱스가 범위를 벗어나는 경우 명령은 OUTOFBOUNDARIES 오류를 반환합니다.
상위 요소가 존재하고 인덱스가 유효한 경우 요소가 새 JSON 값으로 대체됩니다.
경로에 객체 또는 배열이 필요한 경우 값(객체 또는 배열)이 새 JSON 값으로 바뀝니다.
구문
JSON.SET <key> <path> <json> [NX | XX]
[NX | XX] 여기에 [NX | XX] 식별자 0개 또는 1개가 있을 수 있습니다..
키(필수) - JSON 문서 유형의 Valkey 또는 Redis OSS 키입니다.
경로(필수) - JSON 경로입니다. 새 키의 경우 JSON 경로는 루트 “.”여야 합니다.
NX(선택 사항) - 경로가 루트인 경우 키가 없는 경우에만 값을 설정합니다. 즉, 새 문서를 삽입합니다. 경로가 루트가 아니면 경로가 없는 경우에만 값을 설정합니다. 즉, 문서에 값을 삽입합니다.
XX(선택 사항) - 경로가 루트인 경우 키가 있는 경우에만 값을 설정합니다. 즉, 기존 문서를 교체합니다. 경로가 루트가 아니면 경로가 있는 경우에만 값을 설정합니다. 즉, 기존 값을 업데이트합니다.
반환
성공 시 단순 문자열 '확인'.
-
NX 또는 XX 조건이 충족되지 않으면 null입니다.
예
향상된 경로 구문.
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]}"
제한된 경로 구문.
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