if_not_exists
を使用してupdateItem
を行えばよい。
// use if_not_exists()
UpdateExpression: `SET #QQ_ID = :answer, #updatedAt = :updatedAt, #createdAt = if_not_exists(#createdAt, :createdAt)`,
ExpressionAttributeNames: {
'#QQ_ID' : `QQ_${question_id}`,
'#updatedAt': 'UpdatedAt',
'#createdAt': 'CreatedAt',
},
ExpressionAttributeValues: {
':answer': answer,
':updatedAt' : now.toISOString(),
':createdAt' : now.toISOString(),
}
if_not_exists (path, value)
指定された path で項目が属性を含まない場合、if_not_exists は value に評価されます。それ以外の場合は、path に評価されます。
https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET