我有一个名为产品的表。架构是
我想查询类似
SELECT * FROM products WHERE CustomerNumber IN ("cust123","cust234").
如何实现?
很少观察到-
DynamoDBQueryExpression将仅在index / hashKey上查询,而不在上面的示例中的hashKey列表上查询。
DynamoDBQueryExpression也不支持IN或OR运算符。
BatchLoad也仅使用主键(在我的情况下为customerNumber 和productID)记录返回批记录。
我也不想扫描表格并对其应用过滤器。
还在customerNumber上创建GSI,然后查询它不起作用
答案 0 :(得分:4)
对于select * where partitionkey IN ...
条件的每个值,您将执行与select * where partitionkey= ...
等效的单独查询,而不是IN
。这会花费您网络上的一些额外往返行程,仅此而已;如果您担心速度,可以并行执行各个查询。