如何查询DynamoDB中任何项目的GSI范围(即与分区键无关)?

时间:2019-08-06 09:14:27

标签: node.js aws-lambda amazon-dynamodb dynamodb-queries

我正在将Node.js与DynamoDB一起使用。我想获取上个月的表中的项目。我有一个日期GSI,并且ID也链接到该日期。我不想使用扫描,因为此表会增长。主要问题是它与项目无关,查询需要的项目分区键对我而言没有意义。

我尝试单独使用GSI进行查询,并仅使用分区键和GSI来查询范围。我不知道该怎么做。

                        TableName: interactionsTable,
                        IndexName: "interactionDate",
                        KeyConditionExpression: "interactionDate between :fDay and :lDay",
                        ExpressionAttributeValues: {                           
                            ":fDay": firstDayStr,
                            ":lDay": lastDatStr
                        },
                    }

我收到一条错误消息,指出关键条件表达式无效。有没有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

您需要以其他方式配置GSI。

选择另一个字段作为分区键,并将interactionDate设置为GSI的常规属性,然后使用过滤的查询在interactionDate之间使用

该错误是由于您不能对分区键只能在排序键和属性上使用“介于”条件。