NoSQL은 처음이라
사실 등록, 조회, 수정, 삭제 모두 처음이다.
DynamoDB는 기본 키를 사용하여 테이블의 각 항목을 고유하게 식별하므로 등록 시 주의 점은
기본키만 중복 안되게 하면 됐었다.
업데이트 쿼리를 진행하다 보니 하다 보니 아래 문구가 나왔다.
Where clause does not contain a mandatory equality on all key attributes
RDBMS에선 가능한 업데이트가 안된다.
where절엔 구분이 가능한 키 값이 들어가야 된다고 한다.
업데이트 후엔 리턴 값 설정이 있다.
- ALL OLD * - 업데이트 작업 전에 표시된 항목 속성을 모두 반환합니다.
- MODIFIED OLD * - 업데이트 작업 전에 표시된 업데이트된 속성만 반환합니다.
- ALL NEW * - 업데이트 작업 후에 표시되는 항목 속성을 모두 반환합니다.
- MODIFIED NEW * - UpdateItem 작업 후에 표시되는 업데이트된 속성만 반환합니다.
일단은 ALL NEW * 설정으로 사용해보기로 했다.
MODIFIED OLD 옵션은 업데이트된 내용을 속성만 반환된다고 했는데,
실제 변경된 건지 안된 건지 중요해 보이지 않는다. 기존 값과 업데이트 값이 같아도 값이 리턴된다.
기존 값과 업데이트 값이 같든 다르든 해당 업데이트되는 속성은 무조건 업데이트되는 거 같다.
업데이트 문에
각 항목마다 SET을 추가해주고, 각 항목이 배열 형식이 있어서 다음과 같은 옵션이 있다.
- LIST_APPEND: 목록 형식에 값을 추가합니다.
- SET_ADD: 숫자 또는 문자열 집합에 값을 추가합니다.
- SET_DELETE: 숫자 또는 문자열 집합에서 값을 제거합니다.