查找并删除 list/array 值 DynamoDB

Find and remove a list/array value DynamoDB

我正在尝试从 DynamoDB 中的 List/array 中删除一个值。

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

是否可以在单个 updateItem 中找到给定值的索引并删除该值?

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

非常感谢。

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


您正在寻找的此类原子值删除操作仅适用于集合:NS(数字集)、SS(字符串集)、BS(二进制集)。

在 UpdateItem 中使用 DELETE 操作时,您必须指定一个列表 要删除的值,您不必在执行操作之前找到它们的索引(实际上,set 是一个无序集合,因此元素没有索引)

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