首页 > 解决方案 > DynamoDB Nodejs ConditionalExpresion attribute_exists - 验证错误

问题描述

我在 nodejs 中编程,我试图在 dynamoDB 中发出更新请求,该请求仅在条件表达式验证为 true时才执行。为此,我检查请求正文对象 (parsedBody) 中是否有一个名为 crypto 的密钥。

所以,这是我的代码的一部分(docClient 是 AWS.dynamoDB 的一个实例......):

在此处输入图像描述

但是,如果我执行此代码,我会在这里收到此错误:

在此处输入图像描述

所以,拜托,有人可以向我解释我在这里做错了什么吗?

干杯,马塞洛

标签: amazon-web-servicesamazon-dynamodbdynamodb-queriesamazon-dynamodb-local

解决方案


编辑:

来自 AWS Docs,

“您指定了一个评估为假的条件。例如,您可能已尝试对项目执行条件更新,但属性的实际值与条件中的预期值不匹配。”

所以行为是正确的。

您可以尝试使用https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html更新项目,以防您的条件得到满足。


条件表达式在 Dynamo 端执行,而不是在您的服务器上。

我认为对象 persedBody 在 DB 上不存在,因此您可以尝试仅将“crypto”作为 attribute_exists 函数的参数传递。

类似于: ConditionalExpression: 'attribute_exists(crypto)'


推荐阅读