dynamodb从GSI查询多个值

时间:2020-04-16 20:40:10

标签: amazon-dynamodb

我有一个发电机数据库表(id(pk),名称(sk),电子邮件,日期,itemId(数字)) 和GSI在(itemId pk,date(sk) 尝试查询itemIds [1,2,3,4]的数组,但在执行

时使用KeyExperssionValue中的IN语句会出错

aws.DocClient.query

 const IdsArrat = [1,2,3,4,5];
 const query: {
  IndexName: 'accountId-createdAt-index',
  KeyConditionExpression: 'itemId IN (:a1,:a2,:a3)',
  ExpressionAttributeValues: {
    {
        ':a1':1,
        ':a2':2,
          .......
    }
  },
  ScanIndexForward: false,
},

使用IN语句获取错误。

是否有可能在dynamoDb中的GSI上查询多个值?

1 个答案:

答案 0 :(得分:0)

您正在尝试在GSI中查询多个不同的分区键。这只能通过执行多个单独的查询来完成(示例中为3)。对于GSI,也有可能在一次分区键查找中返回多个值,因此最好单独查询分区键“ itemId”。

请参阅以下内容以供参考: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html#DDB-Query-request-KeyConditionExpression