DynamoDB 在 GSI 排序键上不等于
DynamoDB NOT EQUALS on GSI sort key
如标题所示,我处于需要从发电机 table GSI 获取所有记录的情况,因为我知道哈希键并且我知道我想要的排序键避免。
table 看起来像这样:
Id - Primary Key,
AId - GSI hash key,
BId - GSI sort key
我需要一个高效的查询来通过这样的查询获取记录
AId = 1 and BId != 2
.
DynamoDB 在查询散列键和排序键时不支持 <>
运算符,它仅出现在过滤器表达式中,但也不允许出现在任何主键字段中。
那么这里的解决方案是什么?扫描可能不是一个好主意,除非可以在分区上扫描,但这似乎也不被支持。
所以目前对我来说唯一明显的解决方案是通过分区键查询,然后将其从客户端过滤掉。
假设您的排序键实际上是数字,如您的示例所示...
那么您最好的选择是发出两个单独的查询..
AId = 1 and BId < 2
AId = 1 and Bid > 2
实际上,在我写这篇文章时...我认为无论排序键的类型如何,它都会起作用...
如标题所示,我处于需要从发电机 table GSI 获取所有记录的情况,因为我知道哈希键并且我知道我想要的排序键避免。
table 看起来像这样:
Id - Primary Key,
AId - GSI hash key,
BId - GSI sort key
我需要一个高效的查询来通过这样的查询获取记录
AId = 1 and BId != 2
.
DynamoDB 在查询散列键和排序键时不支持 <>
运算符,它仅出现在过滤器表达式中,但也不允许出现在任何主键字段中。
那么这里的解决方案是什么?扫描可能不是一个好主意,除非可以在分区上扫描,但这似乎也不被支持。
所以目前对我来说唯一明显的解决方案是通过分区键查询,然后将其从客户端过滤掉。
假设您的排序键实际上是数字,如您的示例所示...
那么您最好的选择是发出两个单独的查询..
AId = 1 and BId < 2
AId = 1 and Bid > 2
实际上,在我写这篇文章时...我认为无论排序键的类型如何,它都会起作用...