在分区键上使用 IN 运算符查询 dynamoDB

Query dynamoDB with IN operator on Partition Key

我有一个名为 table 的产品。它的架构是

  1. CustomerNumber(字符串类型的 HASH 键)
  2. ProductID(字符串类型的范围键)

我想查询类似

SELECT * FROM products WHERE CustomerNumber IN ("cust123","cust234"). 

如何实现?

观察很少 -

  1. DynamoDBQueryExpression 只会在 index/hashKey 上查询,而不是像上面的示例那样在 hashKey 列表上查询。

  2. 此外,DynamoDBQueryExpression 不支持 IN , OR 运算符。

  3. 此外,BatchLoad 仅使用主键(在我的例子中是 customerNumber 和productID)记录到return批记录。

  4. 此外,我不想扫描 table 并对其应用过滤器。

  5. 同样在 customerNumber 上创建 GSI 然后查询它也不起作用

而不是 select * where partitionkey IN ... 你会为你的 IN 条件的每个值做一个相当于 select * where partitionkey= ... 的单独查询。它会花费你一些额外的网络往返次数,但仅此而已;如果您关心速度,您可以并行执行各个查询。