2017-03-16 59 views
2

我想从DynamoDB中的列表/数组中删除值。查找并删除列表/数组值DynamoDB

我知道我需要使用REMOVE,它需要删除值的索引。

是否有可能找到给定值的索引并删除单个updateItem中的值?

如果不是,执行此操作的最佳方法是什么?

非常感谢。

回答

2

看起来像不能从DynamoDB中的列表中进行此类原子级删除。所以你是对的,要从列表中删除一个项目,你必须首先找到该项目的索引,这是不可能在单个UpdateItem操作中完成这两个步骤的。您先阅读该项目,然后执行更新。


这样的原子值删除,你正在寻找的动作,只在套是可能的:NS(数位),SS(串集),BS(二进制集)。

当使用的updateItem DELETE行动,你必须指定 值的列表删除,你没有执行动作(实际上,设置是一个无序的集合,因此元素没有之前找到自己的索引索引)

因此,如果您的用例允许使用集而不是列表,我会建议这样做。 (集合和列表之间的区别是:集合包含无序的,同一类型的唯一元素,而列表是对数据类型没有限制的值的有序集合)

+0

谢谢,我得到了那样的印象,但是那么多清晰。 –