DynamoDb 条件更新 (boto3)

问题描述 投票:0回答:1

我有一个包含几个字段的 DynamoDB 表:

路径(字符串,键)

首次看到、最后看到(日期)

使用计数器(数量)

创建表后,我用几个项目初始化它。
我将默认值设置为FirstSeen、LastSeen 和UsageCounter。
使用计数器的默认值为零。
稍后(使用 python、boto3 和给定的 Path 值),
我想将UsageCounter的值增加X,将LastSeen的值设置为“现在”,并将FirstSeen的值设置为“现在”(仅当UsageCounter为零时)。
我不想去DB两次。我希望 UpdateExpression 能够处理它。
到目前为止我还没有找到表达上述内容的方式。

编辑 1 - 逻辑

path = 'a/b/c'
counter = 7
date = Date()
if UsageCounter == 0:
   FirstSeen = date
UsageCounter = UsageCounter + counter
LastSeen = date 

init后的数据库表: DB Sample

谢谢

amazon-dynamodb boto3
1个回答
0
投票
在这种情况下,您的最佳选择是首先对所有其他属性执行更新,并将

ReturnValues

 设置为 
ALL_OLD

如果返回值中

UsageCounter

0
,则可以进行第二次更新来更新
FirstSeen

© www.soinside.com 2019 - 2024. All rights reserved.