[英]How do I query the range of a GSI of any item in DynamoDB (i.e. not partition key dependent)?
我在 DynamoDB 中使用 Node.js。 我想获取过去一个月表中的项目。 我有一个日期 GSI,ID 也与日期相关联。 我不想使用扫描,因为这个表会增长。 主要问题是它不依赖于项目,并且查询需要项目分区键,这在我的情况下没有意义。
我尝试过单独使用 GSI 进行查询,并仅使用分区键和它自己的 GSI 来查询范围。 我不知道如何解决这个问题。
TableName: interactionsTable,
IndexName: "interactionDate",
KeyConditionExpression: "interactionDate between :fDay and :lDay",
ExpressionAttributeValues: {
":fDay": firstDayStr,
":lDay": lastDatStr
},
}
我收到一条错误消息,指出关键条件表达式无效。 有没有更好的方法来解决这个问题?
您需要以另一种方式配置 GSI。
选择另一个字段作为分区键并将interactionDate
设置为GSI 的常规属性,然后使用过滤查询在interactionDate
之间使用
该错误是由于您不能在分区键上使用“介于”条件,只能在排序键和属性上使用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.