vin*_*ent 8 upsert amazon-web-services amazon-dynamodb
我们使用 DynamoDB UpdateItem。
正如我们可以从文档中了解到的那样,这充当“更新插入”
编辑现有项目的属性,或者将新项目添加到表中(如果尚不存在)。[...]
当我们发出请求时,为了确定是否创建了某个项目或更新了现有项目,我们请求ALL_OLD。这非常有效,可以让我们区分update和create。
作为附加要求,我们还想返回ALL_NEW,但仍然知道所执行的操作类型。
问题:这可以在单个请求中完成吗?还是我们必须发出第二个(获取)请求?
默认情况下,DynamoDB 不支持此功能,DynamoDB 流中没有ALL或NEW_AND_OLD_IMAGES,但您始终可以 DIY。
当您进行调用时UpdateItem,您会看到UpdateExpression,它基本上是要应用于该项目的更改列表。鉴于您告诉 DynamoDB 返回该操作之前的项目,您可以在本地构造新状态。
只需创建响应的副本ALL_OLD并在本地应用对其所做的更改即可UpdateExpression。这绝对比两次 API 调用要快,但代价是实现稍微复杂一些。
| 归档时间: |
|
| 查看次数: |
17341 次 |
| 最近记录: |