Chr*_*ris 7 amazon-dynamodb aws-lambda
我尝试从Lambda函数查询我的dynamoDB.我的表使用"id"作为哈希键.我在下面尝试了两个版本并收到了相应的错误消息.我究竟做错了什么?
var params = {
TableName : "addresses",
KeyConditionExpression: "id = :id AND city = :city",
ExpressionAttributeValues: {
":id": "Austria",
":city": "Salzburg"
}
};
Run Code Online (Sandbox Code Playgroud)
无法查询.错误:{"message":"不支持查询密钥条件",...}
var params = {
TableName : "addresses",
KeyConditionExpression: "city = :city",
ExpressionAttributeValues: {
":city": "Salzburg"
}
};
Run Code Online (Sandbox Code Playgroud)
无法查询.错误:{"message":"查询条件错过了关键架构元素:id",...}
编辑:
我现在添加了二级索引,但仍然得到相同的错误:
Eya*_* Ch 11
如果您的哈希键是'id',那么您无法通过以下方式查询:
KeyConditionExpression: "id = :id AND city = :city"
Run Code Online (Sandbox Code Playgroud)
或者:
KeyConditionExpression: "city = :city"
Run Code Online (Sandbox Code Playgroud)
您只能通过哈希和范围键查询dynamodb.
所以你的查询应该包含always hash key(id).如果你想通过'city'查询,你应该将'city'作为范围键添加到dynamodb表(或本地二级索引)
然后你可以用'id'和查询记录'city'.
更新:
如果你想查询 'city'
KeyConditionExpression: "city = :city"
Run Code Online (Sandbox Code Playgroud)
那么你可以只添加全局二级索引到表.
| 归档时间: |
|
| 查看次数: |
10820 次 |
| 最近记录: |