我有一个名为"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)
| 归档时间: |
|
| 查看次数: |
4275 次 |
| 最近记录: |