DynamoDB:查询模式中不存在的列
DynamoDB: Query on columns not present in the Schema
我的 DynamoDB
中有以下 table
Thread (id, userId, content)
id为主键。我还没有定义任何排序键。
现在我需要根据 userId 检索结果。简而言之,我需要 table 中包含特定 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
有人可以告诉我如何查询包含用户 ID“123”的所有记录吗?
为此,您需要 add a Global Secondary Index 到以 userId 作为主键的 table。然后您可以直接查询该索引。
您还必须在查询请求中包含索引名称 (source)。
我的 DynamoDB
中有以下 tableThread (id, userId, content)
id为主键。我还没有定义任何排序键。
现在我需要根据 userId 检索结果。简而言之,我需要 table 中包含特定 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
有人可以告诉我如何查询包含用户 ID“123”的所有记录吗?
为此,您需要 add a Global Secondary Index 到以 userId 作为主键的 table。然后您可以直接查询该索引。
您还必须在查询请求中包含索引名称 (source)。