amazon-web-services - DynamoDB Nodejs ConditionalExpresion attribute_exists - 验证错误
问题描述
我在 nodejs 中编程,我试图在 dynamoDB 中发出更新请求,该请求仅在条件表达式验证为 true时才执行。为此,我检查请求正文对象 (parsedBody) 中是否有一个名为 crypto 的密钥。
所以,这是我的代码的一部分(docClient 是 AWS.dynamoDB 的一个实例......):
但是,如果我执行此代码,我会在这里收到此错误:
所以,拜托,有人可以向我解释我在这里做错了什么吗?
干杯,马塞洛
解决方案
编辑:
来自 AWS Docs,
“您指定了一个评估为假的条件。例如,您可能已尝试对项目执行条件更新,但属性的实际值与条件中的预期值不匹配。”
所以行为是正确的。
您可以尝试使用https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html更新项目,以防您的条件得到满足。
条件表达式在 Dynamo 端执行,而不是在您的服务器上。
我认为对象 persedBody 在 DB 上不存在,因此您可以尝试仅将“crypto”作为 attribute_exists 函数的参数传递。
类似于: ConditionalExpression: 'attribute_exists(crypto)'
推荐阅读
- ios - Swift 编写一个带返回值的 async/await 方法
- git - 仅当 git remote 不存在时才添加
- javascript - 在应用程序中,我的标签栏只显示 3 个图标中的 2 个,最后一个栏的图标没有出现。我该如何解决?
- c - c中的类型声明和声明结构
- c++ - 与在新表达式中解析类型 ID 相关的 gcc 发出错误
- python-3.x - 用熊猫中同一行内的新行替换特殊字符
- python - 尝试使用 Python 在注册表中创建运行键
- excel-formula - 使用 Excel 公式将第二个数字与文本分开
- ios - 使用firebase在ios中推送通知
- c# - System.InvalidOperationException 与表单验证