JSON.SET - Amazon MemoryDB

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

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 문서 유형의 레디 스 OSS 키

  • 경로(필수) - JSON 경로입니다. 새 Redis OSS 키의 경우 JSON 경로는 루트 “.” 여야 합니다.

  • NX (선택 사항) - 경로가 루트인 경우 Redis OSS 키가 없는 경우 (예: 새 문서 삽입) 에만 값을 설정합니다. 경로가 루트가 아니면 경로가 없는 경우에만 값을 설정합니다.

  • XX (선택 사항) — 경로가 루트인 경우 Redis OSS 키가 있는 경우, 즉 기존 문서를 대체하는 경우에만 값을 설정합니다. 경로가 루트가 아니면 경로가 있는 경우에만 값을 설정합니다.

반환

  • 성공 시 단순 문자열 '확인'.

  • 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