我的DynamoDB中有下表
Thread (id, userId, content)
以id为主键。我尚未定义任何排序键。
现在我需要基于userId检索结果。总之,我需要表中包含特定userId的所有记录
userId = '123';
let queryParams = {
TableName: tableName,
ExpressionAttributeNames: {
'#userid': 'userid'
},
ExpressionAttributeValues: {
':userid': userId
},
KeyConditionExpression: "#userid = :userid"
}
dynamodb.query(queryParams, (err, data) => {
console.log(err);
console.log(data);
});
运行此命令时出现错误
Could not load items: ValidationException: Query condition missed key schema element: id
有人可以让我知道如何查询包含userId'123'的所有记录吗?
答案 0 :(得分:3)
为此,您需要add a Global Secondary Index到以userId作为主键的表。然后,您可以直接查询该索引。
您还必须在查询请求(source)中包含索引的名称。