为什么PutItem中的ConditionExpression不起作用?

时间:2016-05-23 13:32:34

标签: amazon-dynamodb

我尝试针对dynamoDB表执行PutItem操作,其中itemID为主分区键,createdAt为主要排序键,条件如下:

{ 
    "TableName": "ShoppingBasket",
    "Item": {
      "itemID": {
            "N": "7456473"
        },
        "createdAt": {
            "S": "2001-02-03T04:05:06Z"
        }
    },
    "ConditionExpression": "contains(createdAt, :created_at)",
    "ExpressionAttributeValues": {
        ":created_at": {"S": "Z"}
    }
}

表达式用于确保为createdAt属性提供ISO8601 UTC时间。但它给了我:ConditionalCheckFailedException: The conditional request failed

我做错了什么?

1 个答案:

答案 0 :(得分:0)

对尚不存在的项目使用contains将始终评估为false。相反,请在调用PutItem之前在客户端执行输入验证,检查createdAt的格式是否正确。