通过名为"timestamp"(保留字)的列查询Amazon DynamoDB

fan*_*ang 10 amazon-dynamodb

我有一个名为"timestamp"列的DynamoDB表,我正在尝试按日期查询.我无法控制更改列名称.

var params = {
    TableName : 'REPORT_CARD',

    KeyConditionExpression: "timestamp BETWEEN :startDate AND :endDate",
    ExpressionAttributeValues: {
        ":startDate": ""+startDate,
        ":endDate": ""+endDate
    }     
}
Run Code Online (Sandbox Code Playgroud)

我收到错误:"错误:ValidationException:无效KeyConditionExpression:属性名称是保留关键字;保留关键字:timestamp"

除了重命名"timestamp"列之外,还有解决方法吗?

谢谢!!!

not*_*est 14

首先,假设表"REPORT_CARD"与定义分区键timestamp,可以使用仅等于运算符(即,"=")KeyConditionExpression用于通过分区键查询数据.

您可以使用BETWEENif 在表中timestamp定义为排序键.

注册关键字错误,您可以使用ExpressionAttributeNames提供属性名称timestamp.示例如下: -

var params = {
    TableName: 'REPORT_CARD',

    KeyConditionExpression: "parition_key_attr = :partition_val AND #timestamp BETWEEN :startDate AND :endDate",
    ExpressionAttributeNames: { "#timestamp": "timestamp" },
    ExpressionAttributeValues: {
        ':partition_val': "somevalue",
        ":startDate": startDate,
        ":endDate": endDate
    }
Run Code Online (Sandbox Code Playgroud)