1

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

4

1 回答 1

3

为此,您需要将全局二级索引添加到以 userId 作为主键的表中。然后您可以直接查询该索引。

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

于 2018-12-10T15:10:29.900 回答