在Reply表上创建一个GSI。这个新的GSI将使用PostedBy属性作为分区(HASH)键,我们仍然将消息按ReplyDateTime排序为排序(RANGE)键。我们希望将表中的所有属性复制(投影)到GSI中,因此我们将使用ALL投影类型。我们创建的索引名称为PostedBy-ReplyDateTime-gsi
。 GSI可以随时创建和删除,即使表中已经有数据。
导航到Reply表,切换到Indexes选项卡,然后单击create index
。
输入PostedBy
作为分区键,ReplyDateTime
作为排序键,PostedBy-ReplyDateTime-gsi
作为索引名称。将其他设置保留为默认值,然后单击创建索引
。
等待状态变为Active:
在DynamoDB中使用GSI时,我们必须明确告诉DynamoDB使用索引而不是表。
在GSI上运行查询与在表上运行查询没有什么不同,只是我们需要选择要使用的GSI,并在KeyConditionExpression中使用GSI键属性。
找到由用户A编写的所有回复:
返回到索引选项卡,选择PostedBy-ReplyDateTime-gsi
索引,然后单击删除
。