1

我需要查询 dynamoDB 并获取所有符合特定条件的记录。要求是,我有一个表说 parent_child_table,它有 parent_id 和 child_id 作为两列,现在我需要查询具有特定输入 id 的表并获取所有记录。例如

在此处输入图像描述

现在如果我用 id 67899 查询数据库,我应该得到两条记录,即 12345 和 67899。

我试图使用以下方法:

  1. GetItemRequest itemRequest=new GetItemRequest().withTableName("PARENT_CHILD_TABLE").withKey(partitionKey.entrySet().iterator().next(), sortKey.entrySet().iterator().next());

但我没有得到 OR 运算符。

4

1 回答 1

1

DynamoDB 不能那样工作......

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

Query() 可以返回多条记录,但前提是您使用的是复合主键(分区键+排序键)并且只能在单个分区内查询...所以要返回的所有记录必须具有相同的分区键.

Scan() 可以从任何分区返回多条记录,但它始终扫描整个表。经常使用扫描是一个坏主意。

在不了解更多信息的情况下,很难提供指导,但请考虑如下模式:

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

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

于 2018-12-19T16:26:42.620 回答