Nodejs Dynamodb batchwriteitem如果项目存在则不覆盖

时间:2018-10-07 07:48:40

标签: node.js amazon-dynamodb

我有一个nodejs代码,它将在AWS dynamodb上执行batchWriteItem操作,效果良好。当前,即使某个项目已经具有相同的键,它也会被具有相同键的新项目覆盖。但是我想知道是否有任何方法可以防止覆盖已存在的项目。基本上,如果一个项目已经存在,我不希望它被具有相同密钥的新项目更新。当我搜索时,发现的是我们必须对每个项目进行查询并检查键,如果不存在,则仅将其添加为batchWriteItem的项目。但这需要时间阅读和比较

1 个答案:

答案 0 :(得分:0)

使用WriteBatchItem只能PutDelete个项目。 Put覆盖时。

您要使用的是UpdateItem,它将创建或更新项目。缺点是它会逐个更新项目,没有 UpdateBatchItem

因此,更新项目的唯一选择是使用UpdateItem

我不建议您先Get,然后再Put记录。您将消耗两倍的容量单位。 Update使用“一个”写入容量单位。