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

时间:2019-07-18 04:08:21

标签: amazon-dynamodb dynamodb-queries

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

  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)记录返回批记录。

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

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

1 个答案:

答案 0 :(得分:4)

对于select * where partitionkey IN ...条件的每个值,您将执行与select * where partitionkey= ...等效的单独查询,而不是IN。这会花费您网络上的一些额外往返行程,仅此而已;如果您担心速度,可以并行执行各个查询。