Я использую AWS.DynamoDB.DocumentClient
с nodejs (лямбда-функции на AWS)
У меня есть БД с именем Translations
, первичный ключ Term
, ключ сортировки Category
.
В основном я пытаюсь записать данные следующим образом:
{
Term: 'hello_there',
Category: 'common_phrases',
Translations: {
en-ca: 'Hello There!'
}
}
и хочу обновить Карту переводов, чтобы, возможно, добавить другой язык или просто изменить часть en-ca
объекта.
Я пробовал следующее:
let params = {
TableName: 'Translations',
Key: {
Term: 'hello_there',
Category: 'common_phrases',
},
UpdateExpression:
'SET Translations.#lang = list_append(Translations, :term)',
ExpressionAttributeValues: {
':term': 'french version',
},
ExpressionAttributeNames: {
'#lang': 'fr-ca',
},
}
Но я получаю ошибку о неправильном типе операнда.
Я пробовал:
UpdateExpression:
'SET Translations.#lang = :term',
ExpressionAttributeValues: {
':term': 'french version',
},
ExpressionAttributeNames: {
'#lang': 'fr-ca',
},
Но это перезаписывает все содержимое поля Переводы. Это означает, что если бы у меня уже было en-ca
, то теперь у меня было бы только fr-ca
.
Я тоже это пробовал, но также получал ошибку операнда:
{
UpdateExpression: 'ADD Translations :term',
ExpressionAttributeValues: {
':term': { 'fr-ff': 'frenchterm' },
},
Любой предложения о том, как добавить / обновить элементы на карте переводов?