Ale*_*dez 2 amazon-web-services amazon-dynamodb
作为主键,我有一个食谱的 id,排序键是食物的类型(早餐、正餐、小吃等)。
有没有办法通过扫描或查询来获取具有给定排序键的所有项目?
正如其他人在评论中指出的那样,您不能查询排序键,因为没有提供具有相同排序键的项目列表的操作。
事实上,排序键的全部原因通常是为了对特定分区中的项目进行排序。
将两者放在一起,您需要的是一种按食物类型划分项目然后对其进行查询的方法。输入全球二级索引 (GSI)。
在 GSI 的帮助下,您可以以食物类型成为分区键,而其他一些属性成为排序键的方式索引表中的数据。然后,可以通过查询获取与特定食物类型匹配的所有项目。
有几件事情要记住:
更多指南:https : //docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-indexes-general.html
但在开始创建 GSI 之前,请考虑一下表的架构:您选择的分区键似乎不太理想。一方面,使用配方 ID 作为分区键很好,因为它可能会导致非常好的数据传播,但另一方面,您无法在不创建 GSI 的情况下对表使用查询。
考虑创建一个由食物类型和另一个属性组成的分区键,而不是将菜谱 ID 作为分区键。这样,您实际上可以查询食物类型,或者发出多个查询来检索特定食物类型的所有项目。
| 归档时间: |
|
| 查看次数: |
2706 次 |
| 最近记录: |