Kha*_*han 2 primary-key-design amazon-dynamodb aws-cli
我试图在dynamodb中查询主键是时间戳的数据集。首先,我想获取特定传感器ID的所有数据。我尝试了扫描(scan.json):
{
"sensorId": {
"AttributeValueList": [{
"S": "1234"
}],
"ComparisonOperator": "EQ"
}
}
Run Code Online (Sandbox Code Playgroud)
此Json通过CLI命令使用:
aws dynamodb scan --table-name sensorData --scan-filter file://scan.json
Run Code Online (Sandbox Code Playgroud)
那成功了,并为我提供了指定sensorid的所有数据。
现在,如果我只希望将时间戳记和sensorId作为结果,那么我将了解有关projection-expression的信息,并尝试执行查询(query.json):
{
":Id":{"S":"1234"}
}
Run Code Online (Sandbox Code Playgroud)
aws cli命令
aws dynamodb query --table-name sensorData --key-condition-expression "sensorId= :Id" --expression-attribute-values file://query2.json --projection-expression "timestamp"
Run Code Online (Sandbox Code Playgroud)
给我 :
调用查询操作时发生错误(ValidationException):无效的ProjectionExpression:属性名称是保留的关键字;保留关键字:时间戳记
但是出于测试目的,将“ timestamp”替换为“ sensorId”给了我:
调用Query操作时发生错误(ValidationException):查询条件缺少关键架构元素:时间戳记
而且我了解到sensorId对于键表达式无效。。KeyConditionExpression仅接受键属性,哈希键和范围键。但是如何得到结果呢?
我只需要sensorId的时间戳。我的主键错了吗?最好使用sensorId作为主键以及将时间戳作为范围键?
| 归档时间: |
|
| 查看次数: |
1140 次 |
| 最近记录: |