我想在DynamoDB中'upsert'一个文档 . 也就是说,我想指定一个键和一组字段/值对 . 如果没有包含该密钥的文档,我想要使用该密钥创建的文档以及我指定的键/值对 . 如果存在具有该键的文档,我希望将我指定的字段设置为指定的值(如果之前不存在这些字段,则应添加它们) . 现有文档中的任何其他未指定字段应单独保留 .
当我设置的字段/值对都是顶级字段时,似乎我可以通过UpdateItem调用很好地完成此操作 . 如果我有嵌套结构,只要结构存在, UpdateItem
将用于设置嵌套字段 . 换句话说,如果我的现有文档有 "foo": {}
,那么我可以成功设置 "foo.bar": 42
.
但是,如果没有 foo
对象,我似乎无法设置 "foo.bar": 42
(就像没有包含指定字段的文档的情况一样,我的'upsert'表现为'insert' .
几年前我在AWS论坛上发现a discussion这似乎意味着我想做的事情无法完成,但我希望最近有所改变,或者有人知道这样做的方法吗?
2 回答
使用以下查询可以实现(“foo.bar”:42):
希望这可以帮助 :)