JSON.SET - Amazon ElastiCache

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

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