我有一个看起来像这样的dynampodb项目:
{
'id': 'some_id',
'task_states': {
'some_task_id': {
'phase': 'FINISHED'
}
}
现在我用条件表达式更新它:
task_states.some_task_id.phase IN ('ABSENT','STARTING','RUNNING')
并进行更新!但我的情况应该失败,因为task_states.some_task_id.phase
是FINISHED
,因此不在('ABSENT','STARTING','RUNNING')
。
我不知道这里有什么问题。
更新:
以下是完整的boto电话:
boto3.resource("dynamodb").Table("my_table").update_item(
Key={
"id": "some_id",
},
UpdateExpression="SET task_states.some_task_id.phase = :p",
ExpressionAttributeValues=ExpressionAttributeValues={
":p": newPhase
},
ConditionExpression="task_states.some_task_id.phase IN ('ABSENT','STARTING','RUNNING')"
)