typescript 如何查询dynamodb检索前缀为`sk` id的项

5tmbdcev  于 2023-11-20  发布在  TypeScript
关注(0)|答案(1)|浏览(126)

我有一个dynamodb表,其中包含一个pk,它代表用户ID和一个sk,它代表一个entityId。有几种实体类型,每种类型在db中都有一个前缀用于sk。例如:
| pk| SK|某些属性|
| --|--|--|
| 用户#123|实体#456| someValue|
| 用户#123|实体编号789| someValue|
| 用户#123|实体编号012| someValue|
| 用户#123|实体编号023| someValue|
| 用户#123|实体#045| someValue|
现在我需要写一个查询来检索具有正确的userID和正确的entityId的项目。但是我不知道entityId属于哪个entityType,但我知道它是ENTIYBENTITYCENTITYD
有没有可能写一个查询,返回一个具有正确的userId和正确的entityId的项目,而不知道entityType,但具有entityType集合的信息?我知道我可以为每个entityType写一个查询,然后合并结果,但我想避免这种情况。

xzlaal3s

xzlaal3s1#

您不能使用“contains”查询排序键,因为检查分区内的每个排序键将非常昂贵。
这里的惯用解决方案是创建一个GSI,其中包含满足查询需求的组件顺序。因此,在这种情况下,您的GSI可以格式化为${Id}#${IdentyType},这将允许您查询以您的ID开头的行。

相关问题