如何在不指定分区键值的情况下查询 DynamoDB?
How do I query DynamoDB without specifying a partition key value?
我有一个简单的 table 由 orderID 作为 PK 和 userID 作为 SK 组成,我发现在 dynamoDB 中你需要同时指定 PK 和 SK 才能使用查询。所以在这种情况下,我怎么可能得到 userID x 的所有订单,因为我不能忽略 orderID,因为它们是这个 table 的分区键?另一种解决此问题但不推荐的方法是使用扫描过滤器,它扫描整个 table 然后过滤结果。随着 table 的增长,它最终会变慢。不知道你们是怎么做到这个场景的?
您可以基于 userId 创建全局二级索引 (GSI) 并基于该索引进行查询。
您可以在 AWS 文档中阅读有关索引和 GSI 的更多信息 here。
我有一个简单的 table 由 orderID 作为 PK 和 userID 作为 SK 组成,我发现在 dynamoDB 中你需要同时指定 PK 和 SK 才能使用查询。所以在这种情况下,我怎么可能得到 userID x 的所有订单,因为我不能忽略 orderID,因为它们是这个 table 的分区键?另一种解决此问题但不推荐的方法是使用扫描过滤器,它扫描整个 table 然后过滤结果。随着 table 的增长,它最终会变慢。不知道你们是怎么做到这个场景的?
您可以基于 userId 创建全局二级索引 (GSI) 并基于该索引进行查询。
您可以在 AWS 文档中阅读有关索引和 GSI 的更多信息 here。