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

Pre*_*hah 1 amazon-dynamodb dynamodb-queries

我有一个名为 products 的表。它的架构是

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

我想查询类似于

SELECT * FROM products WHERE CustomerNumber IN ("cust123","cust234"). 
Run Code Online (Sandbox Code Playgroud)

如何实现?

很少观察 -

  1. DynamoDBQueryExpression 将只查询索引/hashKey,而不是像上面的例子那样查询 hashKeys 列表。

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

  3. 此外,BatchLoad 仅使用主键(在我的情况下为 customerNumber 和 productID)记录来返回一批记录。

  4. 另外,我不想扫描表格并对其应用过滤器。

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

Mat*_*ope 5

而不是select * where partitionkey IN ...你会做一个单独的查询,相当于select * where partitionkey= ...你的IN条件的每个值。您需要在网络上进行几次额外的往返,但仅此而已;如果您担心速度,您可以并行执行各个查询。