0

我正在尝试使用 php SDK2 进行有条件的 updateItem 调用,但无法弄清楚如何仅检查字符串集中的单个值。

例如:我在 dynamoDB 中设置了一个字符串:

{"a","b","c"}

我想做一个 updatedItem 调用,并删除其中一个值,但如果该值不存在,则会出错。所以,如果我试图从上面的集合中删除“d”,我希望 dynamoDB 抛出一个错误,而不仅仅是默默地忽略“d”在我的字符串集中不存在的事实。

我试过了:

    'Expected' => array(
        myAttribute => array(
            'Exists' => true,
            'Value' => array(Type::STRING_SET => array("d"))
        )
     )

但是,即使该值是例如“a”,这也会失败。我认为原因是 dynamoDB 认为我希望它验证整个集合,而不仅仅是其中的一个值。

有没有办法进行条件放置并仅验证集合中的单个值?

我可以进行 getItem 调用,将字符串设置为数组并进行自己的检查,但如果可能的话,我希望在一次调用中完成所有操作。

提前致谢

4

1 回答 1

1

查看UpdateItem似乎表明 DynamoDB 将值视为一个整体,并且您不能拥有基于集合中的值的条件。

如果您想明确确认您是否可以执行此操作,或者您想为其提出功能请求,我会在官方 DynamoDB 论坛上发帖。

于 2013-06-24T17:09:58.147 回答