У меня есть простое приложение React / Node, которое создает задачи, и я хотел бы иметь возможность добавлять заметки к каждой задаче.Я могу успешно добавлять и удалять задачи, но у меня возникают проблемы при добавлении новой заметки к задаче.
Моя схема базы данных в DynamoDB выглядит следующим образом:
{
"taskId": "e3b8d901-6d74-4caa-9360-5b2f7aaec513",
"notes": [
{
"noteId": "aeeeeb60-3221-4d4e-b362-d63b48f42fba",
"text": "thing to do next and words",
"status": "TODO"
}
],
"title": "Some Task"
}
Вот как я пытаюсь добавить новую заметку в массив заметок:
function createNote(newNote){
if (!newNote) {
throw new Error('Missing newNote information')
}
return docClient.update({
TableName: 'tasks',
Key: {
'taskId': newNote.taskId
},
UpdateExpression: 'SET #notes = list_append(#notes, :notes)',
ExpressionAttributeNames: {
'#notes': 'notes'
},
ExpressionAttributeValues: {
':notes': [
{
'noteId': uuid(),
'text': newNote.text,
'status': 'TEMP'
}
]
},
ReturnValues: 'ALL_NEW'
}).promise()
.then((res) => {
console.log('Task updated!', res)
return res
})
.catch((error) => {
console.log('Task not updated', error);
throw error
})
}
Когда я пытаюсь добавить новую заметку, я получаю сообщение об ошибке: «Предоставленный ключевой элемент несоответствовать схеме "
Мне пришла идея использовать list_append из этого поста здесь: Как обновить данные вложенного списка в DynamodB с помощью клиента документов
Изменить, чтобы добавить:Я также попытался прочитать документацию здесь, но я не понимаю, как пример (со всеми -) применяется к моему коду: https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.AddingListElements
Что-то не так с моим синтаксисом здесь?
Спасибо!