我在dynamoDB中有一个包含以下字段的表:
reference_number
我想获取与reference_number对应的所有文档,其中isEligible为true。我使用的是一个查询,在isEligible字段上有一个范围条件。现在,我希望返回此查询的结果,并按score字段排序。我有办法做到这一点吗?所有这些都是用java完成的。
发布于 2022-06-14 13:33:04
按照目前的模式,没有。
如果具有具有复合排序键的LSI,则为:
"true#85"
"true#100"
"false#45"
然后,您可以在查询()中使用begins_with。
发布于 2022-06-14 16:07:24
你的二级索引仅仅是在一个键上吗?你也可以给他们分配两个键,比如pk: isEligible,sk: score.
然后,对该索引和pk == True的查询将按顺序返回所有真实分数。
编辑我的错误。LSI对GSI所以我的答案是GSI对你来说是最好的,而不必再做一个连接字段.只要你不赚太多。如果你发现自己制造了大量的GSI,那么就重新评估如何存储数据。它的存储方式可能更适合于SQL /Relational数据库,而不是noSQL表。访问模式是您的关键,而不是存储模式。
https://stackoverflow.com/questions/72617638
复制相似问题