我正在尝试从DynamoDB中的List /数组中删除一个值。
我知道我需要使用REMOVE,它需要删除值的索引。
是否可以找到给定值的索引并删除单个updateItem中的值?
如果没有,执行此操作的最佳方法是什么?
非常感谢。
答案 0 :(得分:3)
看起来你无法从DynamoDB中的列表中执行此类原子删除。所以你是对的,要从列表中删除项目,你必须首先找到项目的索引,在单个UpdateItem操作中不可能同时执行这两个步骤。您首先阅读该项目,然后执行更新。
这样的原子值删除操作正如您所寻找的那样,只能在集合上使用:NS(数字集),SS(字符串集),BS(二进制集)。
在UpdateItem中使用DELETE操作时,您必须指定一个列表 要删除的值,在执行操作之前不必查找索引(实际上,set是无序集合,因此元素没有索引)
因此,如果您的用例允许使用集合而不是列表,我建议您这样做。 (set和list之间的区别在于:一个集合包含相同类型的无序,唯一元素,而list是一个有序的值集合,对数据类型没有限制)