Я хотел бы добавить новый список строк ко всем элементам, которые у меня есть в существующей таблице DynamoDB. Следующее делает то, что я хочу для одного из элементов:
var ddb = new AWS.DynamoDB({ apiVersion: '2012-08-10' });
var params = {
TableName: 'SampleTable',
Key: {
"Date": { S: "01.04.2020" },
"TimeOfDay": { S: "morning" }
},
UpdateExpression: "SET ReferenceList = :rl",
ExpressionAttributeValues: {
":rl":
{
L: [
{ S: "string1" },
{ S: "string2" },
{ S: "string3" }
]
}
}
};
ddb.updateItem(params, function (err, data) {
if (err) console.log(err);
else console.log(data);
});
Тем не менее, я хотел бы передать переменную ExpressionAttributeValues для списка, так как количество строк отличается для каждого элемента. Что-то вроде:
ExpressionAttributeValues: { ":rl": refList }
Однако я не могу понять, как определить refList. Я попробовал следующее:
var refList = `{ L: [ { S: "string1" }, { S: "string2" }, { S: "string3" ]}`;
, а также
var refList = AWS.DynamoDB.Converter.Marshall({list: ['string1', 'string2', 'string3']});
, но ни одна из этих попыток не сработала. Как создать объект списка, который обрабатывает Dynamo, и как передать его ExpressionAttributeValues?