【问题标题】:Query DynamoDB with Partition key and Sort Key using OR Conditon使用 OR 条件使用分区键和排序键查询 DynamoDB
【发布时间】:2019-05-19 18:45:44
【问题描述】:

我需要查询 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 运算符。

【问题讨论】:

    标签: amazon-dynamodb dynamodb-queries


    【解决方案1】:

    DynamoDB 不能那样工作...

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

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

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

    如果不了解更多信息,很难提供指导,但请考虑如下架构:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-18
      • 2021-05-30
      • 1970-01-01
      • 2021-04-27
      • 2021-07-25
      • 2014-05-06
      相关资源
      最近更新 更多