Я пытаюсь сохранить ответ на веб-викторину в таблицу DynamoDB.Каждый раз, когда ответ отправлен, в конечном итоге будет вызван код ниже.Например.за 3 ответа он будет вызван 3 раза.
Каждый раз, когда добавляется ответ, поле UpdatedAt
обновляется с текущей отметкой времени.Это позволяет мне знать, когда был представлен последний ответ.Однако я также хочу знать , когда был отправлен первый ответ , и поэтому мне нужно также поле CreatedAt
.Интересно, как это можно реализовать?
(я проверял ConditionalCheckExpression
, но, похоже, это относится ко всей операции обновления. При этом мне нужно найти способ обновить CreatedAt
только при первой вставке элемента).
const now = new Date();
let updateParams = {
TableName: process.env.TABLE_RESULTS,
Key: {
QuizId: '' + quiz_id,
SessionId: '' + session_key,
},
UpdateExpression: `SET #QQ_ID = :answer, #updatedAt = :updatedAt`,
ExpressionAttributeNames: {
'#QQ_ID' : `QQ_${question_id}`,
'#updatedAt': 'UpdatedAt',
},
ExpressionAttributeValues: {
':answer': answer,
':updatedAt' : now.toISOString(),
}
};
let result = await doc.update(updateParams).promise();