使用 java 中的范围键从 DynamoDB 获取项目
GetItem from DynamoDB using range key in java
我创建了一个名为 orders
的 dynamodb table。我的分区键(哈希键)是 orderId
排序键(范围键)是 storeId
.
我可以使用这两个键将记录放入我的 table。但是现在 我有一个要求,我需要从数据库 中获取所有值,其中 storeId
可以是值列表。但是,我没有在 java 中看到任何使用 范围键 获取值的 api。有人可以帮我解决这个问题吗?
从 DynamoDB 获取数据时,您可以使用两种方法; query
和 scan
.
query
操作用于当您想要通过主键查找项目时。在您的示例中,这意味着您知道 orderId
和 storeId
(或只是 orderId
)
scan
操作用于当您想要使用分区键以外的属性获取数据时。这是您需要用来通过 storeId
.
获取项目的内容
但是,您可能会看到尽可能避免 scan
操作的建议。这是因为 scan
操作必须读取整个数据库才能获取感兴趣的项目。为避免这种情况,您可以在 storeId
字段上引入全局二级索引,这将允许您使用 query
操作通过 storeId
获取项目。
我创建了一个名为 orders
的 dynamodb table。我的分区键(哈希键)是 orderId
排序键(范围键)是 storeId
.
我可以使用这两个键将记录放入我的 table。但是现在 我有一个要求,我需要从数据库 中获取所有值,其中 storeId
可以是值列表。但是,我没有在 java 中看到任何使用 范围键 获取值的 api。有人可以帮我解决这个问题吗?
从 DynamoDB 获取数据时,您可以使用两种方法; query
和 scan
.
query
操作用于当您想要通过主键查找项目时。在您的示例中,这意味着您知道 orderId
和 storeId
(或只是 orderId
)
scan
操作用于当您想要使用分区键以外的属性获取数据时。这是您需要用来通过 storeId
.
但是,您可能会看到尽可能避免 scan
操作的建议。这是因为 scan
操作必须读取整个数据库才能获取感兴趣的项目。为避免这种情况,您可以在 storeId
字段上引入全局二级索引,这将允许您使用 query
操作通过 storeId
获取项目。