dynobase-icon
Dynobase

Error: ValidationException: Invalid KeyConditionExpression: Attribute name is a reserved keyword;

Solution

DynamoDB has a list of reserved keywords that you cannot use in your queries or scans directly. If you need to write an expression that contains one of them, you need to use ExpressionAttributeNames to replace reserved word with a placeholder. For example, this query with reserved keyword:

        params = {
            TableName : ‘MY_TABLE’,
            FilterExpression: "timestamp BETWEEN :startDate AND :endDate",
            ExpressionAttributeValues: { 
                ":startDate": ""+startDate, 
                ":endDate": ""+endDate
            } 
        }
        

Replace with:

 
        params = {
            TableName : ‘MY_TABLE’,
            FilterExpression: "#dynobase_timestamp BETWEEN :startDate AND :endDate",
            ExpressionAttributeValues: { 
                ":startDate": startDate, 
                ":endDate": endDate
            },
            ExpressionAttributeNames: { "#dynobase_timestamp": "timestamp" }
        }
        

Spend less time in the AWS console, use Dynobase.

First 7 days are on us. No strings attached.

Product Features

Download
/
Changelog
/
Pricing
/
Member Portal
/
Privacy
/
EULA
/
Twitter
© 2023 Dynobase
+
Better DynamoDB Experience.
Try Dynobase to accelerate your DynamoDB workflow. Start your 7-day free trial today.