Nice programing

update_item에서 if_not_exists와 list_append를 결합 할 수 있습니까?

nicepro 2021. 1. 6. 20:48
반응형

update_item에서 if_not_exists와 list_append를 결합 할 수 있습니까?


update_itemboto3에서 DynamoDB 기능 을 사용하려고합니다 .

지금 항목 목록을 업데이트하는 데 어려움을 겪고 있습니다. 목록이 아직 존재하지 않는 경우 새 목록을 만들고 그렇지 않으면 기존 목록에 추가하고 싶습니다.

UpdateExpression양식의를 사용하면 목록이 아직 존재하지 않는 경우 "제공된 표현식이 항목에 존재하지 않는 속성을 참조합니다"SET my_list = list_append(my_list, :my_value) 라는 오류가 리턴 됩니다 .

내가 어떻게 수정해야 UpdateExpression할까요?

감사합니다. Fabian


list_append(if_not_exists())건설 을 사용할 수 있습니다 .

UpdateExpression :

'SET my_list2 = list_append(if_not_exists(my_list2, :empty_list), :my_value)'

ExpressionAttributeValues ​​:

{ ":my_value":[{"S":"test"}], ":empty_list":[] }

Boris 솔루션의 대안 은 목록 데이터 유형 대신 set 을 사용하고 ADD 키워드를 사용하는 것입니다. 원하는대로 정확히 수행합니다.

추가를 사용하면 업데이트식이 다음과 같이됩니다. ADD setName :s

식 속성 값은 다음과 같을 수 있습니다. {":s": {"SS":["First", "Second"]}}

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.ADD

참조 URL : https://stackoverflow.com/questions/34951043/is-it-possible-to-combine-if-not-exists-and-list-append-in-update-item

반응형