我正在将Node.js与DynamoDB一起使用。我想获取上个月的表中的项目。我有一个日期GSI,并且ID也链接到该日期。我不想使用扫描,因为此表会增长。主要问题是它与项目无关,查询需要的项目分区键对我而言没有意义。
我尝试单独使用GSI进行查询,并仅使用分区键和GSI来查询范围。我不知道该怎么做。
TableName: interactionsTable,
IndexName: "interactionDate",
KeyConditionExpression: "interactionDate between :fDay and :lDay",
ExpressionAttributeValues: {
":fDay": firstDayStr,
":lDay": lastDatStr
},
}
我收到一条错误消息,指出关键条件表达式无效。有没有更好的方法来解决这个问题?
答案 0 :(得分:0)
您需要以其他方式配置GSI。
选择另一个字段作为分区键,并将interactionDate
设置为GSI的常规属性,然后使用过滤的查询在interactionDate
之间使用
该错误是由于您不能对分区键只能在排序键和属性上使用“介于”条件。