在java中使用范围键从DynamoDB获取项目
我已经创建了一个名为在java中使用范围键从DynamoDB获取项目,java,java-8,amazon-dynamodb,Java,Java 8,Amazon Dynamodb,我已经创建了一个名为orders的dynamodb表。我的分区键(散列键)是orderId,排序键(范围键)是storeId 我可以使用这两个键将记录放在表中。但是现在我有一个需求,我需要使用storeId从数据库中获取所有值,它可以是一个值列表。但是,我在java中没有看到使用范围键获取值的api。有人能帮我吗?当涉及到从DynamoDB获取数据时,您有两种方法可以使用查询和扫描 query操作适用于您希望通过项目的主键查找项目的情况。在您的示例中,这意味着您知道orderId和storeId
orders
的dynamodb表。我的分区键(散列键)是orderId
,排序键(范围键)是storeId
我可以使用这两个键将记录放在表中。但是现在我有一个需求,我需要使用
storeId
从数据库中获取所有值,它可以是一个值列表。但是,我在java中没有看到使用范围键获取值的api。有人能帮我吗?当涉及到从DynamoDB获取数据时,您有两种方法可以使用<代码>查询和扫描
query
操作适用于您希望通过项目的主键查找项目的情况。在您的示例中,这意味着您知道orderId
和storeId
(或者只知道orderId
)
scan
操作适用于希望使用分区键以外的属性获取数据的情况。这是通过storeId
获取项目所需的
但是,您可能会看到建议,尽可能避免执行
扫描
操作。这是因为scan
操作必须读取整个数据库才能获取感兴趣的项目。为了避免这种情况,您可以在storeId
字段上引入一个全局二级索引,这将允许您使用query
操作通过storeId
获取项目。这是一个真正的解决方案。但是,我想问一下,我是否可以添加sortkey作为全局二级索引,然后将投影定义为keys_?因为它仍然是一个关键因素