AWS DynamoDB使用多个条件表达式更新项目

时间:2018-03-13 07:20:33

标签: amazon-web-services amazon-dynamodb amazon-dynamodb-streams

我有一个DynamoDB表,我希望使用多个条件表达式更新特定值。我们可以这样做吗? 我的代码: -

        dynamodb = session.resource('dynamodb')
        table = dynamodb.Table('gold-images')
        response = table.update_item(
            Key={
                    'AccountRegionOS' : AccOs,
                    'CreationDate' : cred
                },
            UpdateExpression="set is_active = :r",
            ConditionExpression="CreationDate < :num",
            ExpressionAttributeValues={
                ':num' : last_month,
                ':r': "No"
            },
            ReturnValues="UPDATED_NEW"

我希望Condition表达式

        dynamodb = session.resource('dynamodb')
        table = dynamodb.Table('gold-images')
        response = table.update_item(
            Key={
                    'AccountRegionOS' : AccOs,
                    'CreationDate' : cred
                },
            UpdateExpression="set is_active = :r",
            ConditionExpression=("CreationDate < :num") & ("AMIID = :ami"),
            ExpressionAttributeValues={
                ':num' : last_month,
                ':r': "No",
                ':ami' : i
            },
            ReturnValues="UPDATED_NEW"

1 个答案:

答案 0 :(得分:0)

条件表达式是一个字符串,逻辑运算符是ANDORNOT。因此,您需要删除外部括号并将&替换为AND

ConditionExpression = "CreationDate < :num AND AMIID = :ami"

请参阅Condition Expressions