当列表可能存在也可能不存在时,我正在尝试对列表中的第一项设置条件。我正在尝试首先检查列表是否存在,但 DynamoDB 似乎并没有使表达式短路。无论如何,我都会收到此错误:ValidationException:提供的表达式引用了项目中不存在的属性。
params.ExpressionAttributeNames = {
'#checkIns': 'checkIns'
};
params.ExpressionAttributeValues = {
':newCheckIn': [newDateString],
':justDatePart': justDatePart
};
params.UpdateExpression = 'SET #checkIns = list_append(:newCheckIn, #checkIns)';
// make sure task is not already checked in today
params.ConditionExpression =
'attribute_not_exists(#checkIns) OR (NOT begins_with(#checkIns[0], :justDatePart))';
return Table.updateAsync({ID}, params); // using dynogels-promisified
通过首先检查属性是否存在,我似乎无法让它短路。我还尝试使用 if_not_exists() 将 checkIns[0] 替换为无意义的字符串,但出现此错误:
ValidationException: Invalid ConditionExpression: 条件表达式中不允许该函数;功能:if_not_exists
有人有想法么?