DynamoDB:查询模式中不存在的列

时间:2018-12-10 15:05:11

标签: amazon-web-services amazon-dynamodb dynamodb-queries

我的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'的所有记录吗?

1 个答案:

答案 0 :(得分:3)

为此,您需要add a Global Secondary Index到以userId作为主键的表。然后,您可以直接查询该索引。

您还必须在查询请求(source)中包含索引的名称。