【问题标题】:GetItem from DynamoDB using range key in java使用Java中的范围键从DynamoDB GetItem
【发布时间】:2020-11-17 23:44:43
【问题描述】:

我创建了一个名为 orders 的 dynamodb 表。我的分区键(哈希键)是orderId,排序键(范围键)是storeId

我可以使用这两个键将记录放入我的表中。但是现在我有一个要求,我需要使用storeId 从数据库中获取所有值,它可以是一个值列表。但是,我在 java 中没有看到任何使用 range key 获取值的 api。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: java java-8 amazon-dynamodb


    【解决方案1】:

    在从 DynamoDB 获取数据时,您可以使用两种方法; queryscan

    query 操作适用于您希望通过项目的主键查找项目的情况。在您的示例中,这意味着您知道orderIdstoreId(或只是orderId

    scan 操作适用于您希望使用分区键以外的属性获取数据的情况。这就是您需要用来通过storeId 获取项目的内容。

    但是,您可能会看到尽可能避免 scan 操作的建议。这是因为scan 操作必须读取整个数据库才能获取感兴趣的项目。为避免这种情况,您可以在 storeId 字段上引入全局二级索引,这将允许您使用 query 操作通过 storeId 获取项目。

    【讨论】:

    • 这是一种真正的解决方案。但是,我想问我可以添加sortkey作为全局二级索引,然后将投影定义为keys_only吗?因为它仍然是一个关键元素
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    • 2023-02-16
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    相关资源
    最近更新 更多