我想基于列status_code查询dynamoDB表。我通过使用以下代码获取输出:

params = {
    TableName : "Orders_" + environment,
    IndexName: "StatusCode-StoreID-index",
    KeyConditionExpression: "StatusCode = :status_code",
    ExpressionAttributeValues: {
      ":status_code": "ST01"
    },
    ScanIndexForward: false,
    Limit : ordersPageSize
  };


在这里,我将status_code传递为ST01。我的问题是关于传递多个值而不是ST01。
如何获取status_code值为ST01或ST02或ST03的记录?

最佳答案

您可以在IN上使用FilterExpression运算符。

params = {
    TableName : "Orders_" + environment,
    IndexName: "StatusCode-StoreID-index",
    KeyConditionExpression: "StatusCode = :status_code1",
    ExpressionAttributeValues: {
      ":status_code1": "ST01"
    },
    ScanIndexForward: false,
    Limit : ordersPageSize
  };


如果您想获取多个状态(即哈希键),则可以使用batchGetItem API。但是,batchGetItem不支持索引。您只能在主表上使用此API。

10-06 03:18