[英]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.