KeyConditionExpression 中的条件无效:一个条件中使用了多个属性名称

Posted

技术标签:

【中文标题】KeyConditionExpression 中的条件无效:一个条件中使用了多个属性名称【英文标题】:Invalid condition in KeyConditionExpression: Multiple attribute names used in one condition 【发布时间】:2020-09-09 08:19:39 【问题描述】:

我想使用 graphql 查询 dynamodb

TableName: "JobInfo", IndexName: "tableauGSI", KeyConditionExpression: "tableauGSI_Tableau = tableau AND #D BETWEEN :startDate AND :endDate", ExpressionAttributeNames: "#D": "date" , ExpressionAttributeValues: ":startDate": startDate, ":endDate": days , ReturnConsumedCapacity: "TOTAL"

但是当我执行查询时,我收到错误:“

【问题讨论】:

GSI 的分区键和排序键属性是什么? 【参考方案1】:

假设“tableauGSI_Tableau”是您的分区键,您将其与名为“tableau”的字段进行比较,我认为这是不允许的。如果“tableau”只是一个值,则需要对其进行转义或将其移至 ExpressionAttributeValues。

【讨论】:

以上是关于KeyConditionExpression 中的条件无效:一个条件中使用了多个属性名称的主要内容,如果未能解决你的问题,请参考以下文章

AWS dynamoDB按日期查询

循环多维数组 Laravel

使用 Node 从 Lambda 查询 Dynamodb - 缺少键

C# dynamodb 错误:查询条件缺少键架构元素:主键

在 Dynamodb 索引中使用 set 作为主键

Dynamodb,你如何查询一切并利用排序键