我有一个nodejs代码,它将在AWS dynamodb上执行batchWriteItem操作,效果良好。当前,即使某个项目已经具有相同的键,它也会被具有相同键的新项目覆盖。但是我想知道是否有任何方法可以防止覆盖已存在的项目。基本上,如果一个项目已经存在,我不希望它被具有相同密钥的新项目更新。当我搜索时,发现的是我们必须对每个项目进行查询并检查键,如果不存在,则仅将其添加为batchWriteItem的项目。但这需要时间阅读和比较
答案 0 :(得分:0)
使用WriteBatchItem
只能Put
或Delete
个项目。 Put
覆盖时。
您要使用的是UpdateItem
,它将创建或更新项目。缺点是它会逐个更新项目,没有 UpdateBatchItem 。
因此,更新项目的唯一选择是使用UpdateItem
。
我不建议您先Get
,然后再Put
记录。您将消耗两倍的容量单位。 Update
使用“一个”写入容量单位。