[英]DynamoDB primarykey timestamp
我试图在dynamodb中查询主键是时间戳的数据集。 首先,我想获取特定传感器ID的所有数据。 我尝试了扫描(scan.json):
{
"sensorId": {
"AttributeValueList": [{
"S": "1234"
}],
"ComparisonOperator": "EQ"
}
}
此Json通过CLI命令使用:
aws dynamodb scan --table-name sensorData --scan-filter file://scan.json
那成功了,并为我提供了指定sensorid的所有数据。
现在,如果我只希望将时间戳记和sensorId作为结果,那么我将了解有关projection-expression的信息,并尝试执行查询(query.json):
{
":Id":{"S":"1234"}
}
aws cli命令
aws dynamodb query --table-name sensorData --key-condition-expression "sensorId= :Id" --expression-attribute-values file://query2.json --projection-expression "timestamp"
给我 :
调用Query操作时发生错误(ValidationException):无效的ProjectionExpression:属性名称是保留的关键字; 保留关键字:时间戳记
但是出于测试目的,将“ timestamp”替换为“ sensorId”给了我:
调用Query操作时发生错误(ValidationException):查询条件缺少关键架构元素:时间戳记
而且我知道该sensorId对于键表达式无效。。KeyConditionExpression仅接受键属性,哈希键和范围键。 但是如何得到结果呢?
我只需要sensorId的时间戳。 我的主键错了吗? 最好使用sensorId作为主键以及将时间戳作为范围键?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.