是否可以向 DynamoDB UpdateItem
传递一个选项,以使对不存在的项目调用UpdateItem
失败?
目前,如果分区键不存在,UpdateItem
很乐意创建一个新项目。在这种特殊情况下,我想要一个错误。
获取,并且只做一个更新项目,但这性能较低/更麻烦。
您可以使用 ConditionExpression 执行条件更新。
条件更新 API 非常强大,但就您而言,您需要构建一个条件表达式,用于检查您尝试更新的项目是否使用项目分区键(以及范围键,如果您的表使用范围键)上的条件表达式退出。
由于您没有指定编程语言,因此最好的起点是文档。
更准确地说,您必须设置 ConditionExpression: "attribute_exists(<your key attribute name>)"
。
如果键相关项不存在,此操作将失败 - DynamoDB 搜索键相关项,但找不到任何项,并且所有attribute_exists
条件函数调用都将失败。
相反,如果 Item 存在,则它始终具有 key 属性,因此attribute_exists(key)
返回 true。