在分区键上使用 IN 运算符查询 dynamoDB
Query dynamoDB with IN operator on Partition Key
我有一个名为 table 的产品。它的架构是
- CustomerNumber(字符串类型的 HASH 键)
- ProductID(字符串类型的范围键)
我想查询类似
SELECT * FROM products WHERE CustomerNumber IN ("cust123","cust234").
如何实现?
观察很少 -
DynamoDBQueryExpression 只会在 index/hashKey 上查询,而不是像上面的示例那样在 hashKey 列表上查询。
此外,DynamoDBQueryExpression 不支持 IN , OR 运算符。
此外,BatchLoad 仅使用主键(在我的例子中是 customerNumber
和productID)记录到return批记录。
此外,我不想扫描 table 并对其应用过滤器。
同样在 customerNumber 上创建 GSI 然后查询它也不起作用
而不是 select * where partitionkey IN ...
你会为你的 IN
条件的每个值做一个相当于 select * where partitionkey= ...
的单独查询。它会花费你一些额外的网络往返次数,但仅此而已;如果您关心速度,您可以并行执行各个查询。
我有一个名为 table 的产品。它的架构是
- CustomerNumber(字符串类型的 HASH 键)
- ProductID(字符串类型的范围键)
我想查询类似
SELECT * FROM products WHERE CustomerNumber IN ("cust123","cust234").
如何实现?
观察很少 -
DynamoDBQueryExpression 只会在 index/hashKey 上查询,而不是像上面的示例那样在 hashKey 列表上查询。
此外,DynamoDBQueryExpression 不支持 IN , OR 运算符。
此外,BatchLoad 仅使用主键(在我的例子中是 customerNumber 和productID)记录到return批记录。
此外,我不想扫描 table 并对其应用过滤器。
同样在 customerNumber 上创建 GSI 然后查询它也不起作用
而不是 select * where partitionkey IN ...
你会为你的 IN
条件的每个值做一个相当于 select * where partitionkey= ...
的单独查询。它会花费你一些额外的网络往返次数,但仅此而已;如果您关心速度,您可以并行执行各个查询。