根据变化的值对 DynamoDB 中的数据进行排序

Sorting data in DynamoDB based on a changing value

我有一个由城市和评论组成的 table 结构。我需要获得与城市相关的所有评论。我已将评论的主键设为城市名称。现在,当我查询我的 table 时,我可以获得与该城市相关的所有评论,但我需要它们来排列该评论的投票顺序。选票价值不断变化。我考虑过将 ordered by 添加到我的查询中或将投票添加为范围键并删除是在每次投票更改时重新添加记录。这些解决方案的接缝效率不高,想知道是否有更好的方法?

您可以做的一件简单的事情是使用 local secondary index - 此 DynamoDB 功能可以创建第二个 table,其散列键相同(城市名称),但排序键是票数 - 在您的原始 table 中它仍然只是一个普通属性。当您修改第一个时,DynamoDB 将自动且始终如一地为您处理第二个 table。

使用 LSI 比编写额外的删除和添加代码更容易,并且在减少网络 activity 和客户端工作的意义上更高效 - 但在亚马逊账单上可能不会便宜很多,因为 DynamoDB 向您收费LSI 工作的额外费用。