我有一个发电机数据库表(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上查询多个值?
答案 0 :(得分:0)
您正在尝试在GSI中查询多个不同的分区键。这只能通过执行多个单独的查询来完成(示例中为3)。对于GSI,也有可能在一次分区键查找中返回多个值,因此最好单独查询分区键“ itemId”。