繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM