AWS DynamoDB создать выражение обновления - добавить новый набор строк, если его не существует - PullRequest
0 голосов
/ 16 декабря 2018

Я пытаюсь создать обновление, которое либо добавляет электронное письмо к набору строк, если набор строк существует, либо создает набор строк с электронным письмом, если его не существует.

Я взял некоторый код из этого ответа: Добавьте или создайте StringSet, если он не существует , но я не могу заставить его работать.

Я заканчиваю сошибка "errorMessage": "An error occurred (ValidationException) when calling the UpdateItem operation: Invalid UpdateExpression: Incorrect operand type for operator or function; operator: ADD, operand type: MAP" }

 response = table.update_item(
        Key={'email':email},
        UpdateExpression='ADD emails :i',
        ExpressionAttributeValues={
            ':i': {SS': [email]},
        },
        ReturnValues="UPDATED_NEW"
    )

Как создать выражение обновления, которое создает набор строк, если его нет, или добавляет к нему элемент, если он существует?

1 Ответ

0 голосов
/ 14 марта 2019

У меня была такая же проблема на этой неделе, и я нашел решение для всех, кто позже вернется к этому вопросу.Взгляните на пример ниже:

response = table.update_item(
    Key={'email': email },
    UpdateExpression="ADD emails :i",
    ExpressionAttributeValues={":i": set([email])},
    ReturnValues="UPDATED_NEW"
)

Это сработало для меня, чтобы создать набор строк или добавить к существующему набору строк.

...