put-item和update-item之间的区别是什么?

11 浏览
0 Comments

put-item和update-item之间的区别是什么?

put-item:创建一个新项,或用新项替换旧项

update-item:编辑现有项的属性,或者在该项在表中不存在时向表中添加一个新项。

当我使用update-item和一个在表中不存在的新分区键时,它创建了该项。使用put-item时也发生了同样的事情。

那么put-item和update-item之间有什么区别?

谢谢。

0
0 Comments

PutItem和UpdateItem之间的区别是微妙的,与项目已经存在于表中的情况有关。

PutItem将始终表现得好像项目根本不存在于表中,完全使用新项目的内容重新创建项目。

另一方面,UpdateItem在项目已经存在的情况下,不会完全重新创建/替换项目,而是根据新项目的内容更新现有项目的属性。行为可以配置为合并或删除现有项目的属性。

希望这样说有意义,但可以将PutItem视为“我不在乎现有的内容,使其看起来像我告诉你的那样”,而UpdateItem更像是“修改项目(如果存在),以添加/删除属性”。

这里举个例子:如果DB中有{name: "John", last: "Smith"},使用{name: "Joe"}进行更新将得到{name: "Joe", last: "Smith"},而使用{name: "Joe"}进行Put将得到{name: "Joe"}。

0