Node.js 如何查询DynamoDB中任何项的GSI范围(即不依赖于分区键)?

Node.js 如何查询DynamoDB中任何项的GSI范围(即不依赖于分区键)?,node.js,aws-lambda,amazon-dynamodb,dynamodb-queries,Node.js,Aws Lambda,Amazon Dynamodb,Dynamodb Queries,我将Node.js与DynamoDB一起使用。我想取表中上个月的项目。我有一个日期GSI,id也链接到该日期。我不想使用扫描,因为此表将增长。主要的问题是它不依赖于项,查询需要项分区键,这在我的例子中没有意义 我曾尝试单独使用GSI进行查询,并仅使用分区键和GSI查询范围。我不知道该怎么做才对 TableName: interactionsTable, IndexName: "interactionD

我将Node.js与DynamoDB一起使用。我想取表中上个月的项目。我有一个日期GSI,id也链接到该日期。我不想使用扫描,因为此表将增长。主要的问题是它不依赖于项,查询需要项分区键,这在我的例子中没有意义

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

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

我收到一个错误,说明键条件表达式无效。是否有更好的方法解决此问题?

您需要以另一种方式配置GSI

选择另一个字段作为分区键,并将
interactionDate
设置为GSI的常规属性,然后在
interactionDate


错误的原因是不能对分区键使用“介于”条件,只能对排序键和属性使用“介于”条件。

显示表和索引的定义。。。