gpt4 book ai didi

amazon-dynamodb - DynamoDB - 返回哪个 ConditionExpression 为假

转载 作者:行者123 更新时间:2023-12-01 03:35:21 25 4
gpt4 key购买 nike

我正在用 ConditionExpression 调用 PutItem看起来像:
attribute_exists(id) AND object_version = :x
换句话说,如果满足以下条件,我只想更新一个项目:

  • 对象需要存在
  • 我的更新必须是最新版本的对象

  • 现在,如果检查失败,我不知道哪个条件是错误的。有没有办法获取有关哪些条件为假的信息?可能不是,但谁知道...

    最佳答案

    DynamoDB 中的条件表达式允许对 DynamoDB 对象进行原子写操作,这对于单个对象是高度一致的,即使在分布式系统中,由于 paxos。

    一种标准方法是先简单地读取对象,然后在客户端应用程序代码中执行上述检查。如果其中一个条件不匹配,您可以直接知道哪一个无效,而不会发生写入操作失败。让 DynamoDB 也执行此检查的原因是另一个应用程序或线程可能在检查和写入之间修改了此对象。如果写入失败,则您将再次读取该对象并再次执行检查。

    另一种方法是在写入之前跳过读取,并在写入失败后读取对象,以检查您的代码以确定实际失败的条件。

    需要对表进行一两次额外的读取,因为您想知道哪个特定条件失败。 DynamoDB 不提供此功能,因此您必须自己进行检查。

    关于amazon-dynamodb - DynamoDB - 返回哪个 ConditionExpression 为假,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35377011/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com