在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_?因为它仍然是一个关键因素