amazon dynamodb - क्या if_not_exists और list_append को update_item में संयोजित करना संभव है




amazon-dynamodb boto3 (2)

आप 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":[] }

मैं boto3 में DynamoDB के लिए update_item कार्यक्षमता का उपयोग करने का प्रयास कर रहा हूं।

मदों के लिए सूचियों को अपडेट करने के लिए मैं अभी संघर्ष कर रहा हूं। यदि सूची अभी तक मौजूद नहीं है तो मैं एक नई सूची बनाना चाहूंगा और अन्यथा मौजूदा सूची में जोड़ दूंगा।

प्रपत्र के एक UpdateExpression का उपयोग करके SET my_list = list_append(my_list, :my_value) एक त्रुटि देता है "प्रदान की गई अभिव्यक्ति उस विशेषता को संदर्भित करती है जो आइटम में मौजूद नहीं है" यदि सूची अभी तक मौजूद नहीं है।

किसी भी विचार कैसे मैं अपने UpdateExpression संशोधित करने के लिए होगा?

धन्यवाद और सादर, Fabian


बोरिस समाधान का एक विकल्प सूची डेटाटाइप के बजाय set का उपयोग करना और ADD कीवर्ड का उपयोग करना हो सकता है, यह वही करता है जो आप चाहते हैं।

ऐड के साथ, अपडेट एक्सप्रेशन बन जाता है: ADD setName :s

और अभिव्यक्ति विशेषता मान इस प्रकार हो सकते हैं: {":s": {"SS":["First", "Second"]}}

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