2016-07-10 3 views
1

DynamoDB UpdateItem에 옵션을 전달할 수 없으므로 기존 항목이 아닌 UpdateItem이 실패 할 수 있습니까?기존 DynamoDB 리소스에만 UpdateItem을 허용하는 방법은 무엇입니까?

현재 UpdateItem은 partition-key가없는 경우 기쁜 마음으로 새 항목을 만듭니다. 나는이 특별한 상황에서 대신 오류를 원한다.

물론 나는 updateItem을 얻기 전에 할 수 있고 존재하는 경우에만 updateItem을 수행 할 수 있습니다. 그러나 이것은 성능이 낮고/더 복잡합니다.

+0

성능이 떨어 집니까? 이걸 시험해 봤어? 나 자신을 모르지만 나는 호기심이 많다. – arjabbar

+1

의심의 여지가 없습니다. 적어도 하나의 라운드 트립 플러스, 내 경우에는, 하나 덜 APi 게이트웨이를 통과했다. 그 dynamodb의 위에 조건부 put을 할 수있는 가능성이 더 높습니다. 그리고 더하기 따로 따로 넣으십시오.하지만 마지막 부분은 지금 가정입니다. –

답변

1

ConditionExpression을 사용하여 조건부 업데이트를 수행 할 수 있습니다.

조건부 업데이트 API는 매우 강력하지만, 귀하의 경우 업데이트하려는 항목이 항목의 파티션 키 (및 범위)에 대한 조건부 표현식을 사용하여 종료하는지 여부를 확인하는 조건식을 작성하고자 할 것입니다 테이블에서 키를 사용하는 경우 키).

프로그래밍 언어를 지정하지 않았으므로 시작하기 가장 좋은 장소는 the documentation입니다.

+0

아, 꽤 강력합니다! –

+0

PHP에서 사용되는 ConditionExpression 구문은 무엇입니까? –

0

정확하게 말하면 ConditionExpression: "attribute_exists(<your key attribute name>)"을 설정해야합니다.

키 관련 항목이없는 경우 실패합니다. - DynamoDB가 키 관련 항목을 검색하고 아무 것도 찾지 않으며 모든 attribute_existscondition function 호출이 실패합니다.

반대로 항목이 존재하면 항상 키 속성이 있으므로 attribute_exists(key)이 true를 반환합니다.

관련 문제