我的DynamoDB表包含以下attritubes
sales_id: hashkey
created_date: rangekey
sales_employee_id:IndexedHashKey
我正在尝试获取表Sales的所有数据,就像在MySQL中一样
select * from Sales
如何查询DynamoDB。我正在尝试使用以下AWS CLI查询,但每次都会失败并显示以下消息
aws dynamodb get-item --table-name Sales --key '{"sales_id":{"N":"1"}}'
以下是错误消息
An error occurred (ValidationException) when calling the GetItem operation: The provided key element does not match the schema
下面的节点js代码也会抛出相同的错误
var getSalesDetails = function(user_id, callback) {
var params = {
TableName: "Sales",
Key:{
":sales_id":{"N":"1"},
":created_date":{"S": "2018-01-22"}
}
};
docClient.get(params, function(err, data) {
if (err) console.log(err); // an error occurred
else console.log(data); // successful response
});
};
答案 0 :(得分:0)
假设您已使用以下数据类型定义了键属性,则以下代码应该有效。 docClient
应根据变量值自动派生数据类型。
sales_id:hashkey - 数字
created_date:rangekey - String
删除了Key属性中提供的显式数据类型。
var params = {
TableName: "Sales",
Key:{
":sales_id": 1,
":created_date": "2018-01-22"
}
};
docClient.get(params, function(err, data) {
if (err) console.log(err); // an error occurred
else console.log(data); // successful response
});
};