Есть ли способ преобразовать выходные данные запроса DynamoDB (используя doc-client в Lambda) во время процесса запроса.В частности, я хочу извлечь первый элемент списка и поместить его в новый атрибут.
В качестве упрощенного примера DynamoDB имеет следующие записи:
{
"Id": 1
"Items": [ "item-1", "item-2", "item-3" ]
},
{
"Id": 2,
"Items": [ "item-x" ]
},
{
"Id": 3,
// "Items" is potentially optional
}
И используя следующиеЛямбда-функция:
// ...
exports.handler = async (event, context) => {
return dynamoDoc.query({
TableName : 'some-table',
Select : 'SPECIFIC_ATTRIBUTES',
KeyConditionExpression : 'Id = :id',
ExpressionAttributeValues : {
':id' : event.Id,
},
ProjectionExpression : `
Id,
Items[0]
`,
}).promise();
};
Однако это возвращает список с элементами, которые выглядят следующим образом:
"Items": [
{
"Id": 1,
"Items": [
"item-1"
]
},
{
"Id": 2,
"Items": [
"item-x"
]
},
{
"Id": 3
}
]
Есть ли способ переназначить имена атрибутов, используя какое-то выражение, чтобы я могполучить вывод данных в виде:
Items: [
{
"Id": 1,
"FirstItem: "item-1"
},
{
"Id": 2,
"FirstItem: "item-x"
},
{
"Id": 3
}
]
В настоящее время я использую массив array.forEach в Javascript для данных позже, однако я пытаюсь избежать этого и предпочел бы использовать DynamoDB для этого вычисления.