Amazon dynamodb DynamoDB“如何设置”;反向查找GS“;
我试图弄清楚如何在DyamoDB中实现反向查找GSI。今年,我在reInvent参加了一个关于DynamoDB的精彩演讲()。在演讲开始44分钟左右,提出了反向查找GSI的想法。我不知道如何在迪纳摩实现这一点 我想添加一个GSI来执行反向查找 我目前的计划是: 我希望能够仅查询CXSK。我计划重载CXSK,并希望能够使用该密钥的开头进行查询 我不确定我在创建GSI时遗漏了什么。我不确定在以下领域应该做什么。我也很好奇,使用重载排序键是否有意义Amazon dynamodb DynamoDB“如何设置”;反向查找GS“;,amazon-dynamodb,Amazon Dynamodb,我试图弄清楚如何在DyamoDB中实现反向查找GSI。今年,我在reInvent参加了一个关于DynamoDB的精彩演讲()。在演讲开始44分钟左右,提出了反向查找GSI的想法。我不知道如何在迪纳摩实现这一点 我想添加一个GSI来执行反向查找 我目前的计划是: 我希望能够仅查询CXSK。我计划重载CXSK,并希望能够使用该密钥的开头进行查询 我不确定我在创建GSI时遗漏了什么。我不确定在以下领域应该做什么。我也很好奇,使用重载排序键是否有意义 假设这是您的原始表格 | pk | sk
假设这是您的原始表格
| pk | sk | prop1 | prop2 | ...
| a | b | xyz | abc
| a | c | lmn | opq
| b | x | rst | lme
| b | b | tuv | opq
在上表中,您可以执行如下查询
选择*其中pk=a
它将返回第1行和第2行
选择*其中pk=a和sk=b
它将返回第1行
现在进行反向查找意味着您希望通过其他字段名聚合数据。
比如说,我们想通过sk来完成。为此,我们将创建一个GSI,sk作为partitionKey,pk作为SortKey。这个表的视图看起来像
这将是您的GSI1表
| pk | sk | prop1 | prop2 | ...
| b | a | xyz | abc
| c | a | lmn | opq
| x | b | rst | lme
| b | b | tuv | opq
在上表中,您可以执行如下查询
选择*where pk=b
它将返回第1行和第4行
选择*其中pk=b和sk=a
它将返回第1行
考虑到上面的描述,在您的情况下,您应该创建具有pk作为CXSK和sk作为USERId的GSI,这是有意义的。我只能查询=,=,介于,以开始。是否可以使用“包含”或“存在”进行查询?我假设“contains”和“exists”仅用于过滤器。