使用分区条件和排序键使用OR条件查询DynamoDB

时间:2018-12-19 09:45:33

标签: amazon-dynamodb dynamodb-queries

我需要查询dynamoDB并获取符合特定条件的所有记录。要求是,我的表说有parent_child_table,其中parent_id和child_id为两列,现在我需要用特定的输入ID查询表并获取所有记录。例如

enter image description here

现在,如果我查询ID为67899的数据库,则应该同时获得两条记录,即12345和67899。

我正在尝试使用以下方法:

  1. GetItemRequest itemRequest =新的GetItemRequest()。withTableName(“ PARENT_CHILD_TABLE”)。withKey(partitionKey.entrySet()。iterator()。next(),sortKey.entrySet()。iterator()。next());

但没有获得OR运算符。

1 个答案:

答案 0 :(得分:0)

DynamoDB不能那样工作...

GetItemRequest()只能返回一条记录。

Query()可以返回多个记录,但是仅当您使用复合主键(分区键+排序键)并且您只能在单个分区内进行查询时...因此要返回的所有记录都必须具有相同的分区键。

Scan()可以从任何分区返回多个记录,但是它总是通过扫描整个表来实现的。定期使用扫描是个坏主意。

一无所知,很难提供指导,但是请考虑如下所示的模式:

partition key  sort key
12345          12345
12345          12345#67899
12345          12345#67899#97765

可能在排序键中或作为属性添加某种级别指示器。