! ФИКСИРОВАННЫЙ! AWS-SDK в nodejs с DynamodB -> невозможно добавить свойство внутри элемента
Я хотел бы обновить объект карты в DynamodB.
Ответ об ошибке: {"message":"Недопустимое UpdateExpression: неверный тип операнда для оператора или функции; оператор или функция: list_append, тип операнда: M","code":"ValidationException","time":"2018-04-26T15:40:54.041Z","RequestID":"6MRM3069UJ5F81G7KSTC58PUGNVV4KQNSO5AEMVJF66Q9ASUAAJG","StatusCode":400,"retryable" ложь "retryDelay": +44,27659609101826}
Схема такая:
{
id: строка,
симулятор: {
а: {....},
б: {...}
},
статус: номер,
...
}
свойство симулятора должно быть обновлено. Итак, я использую db.update() с этим запросом:
const params = {
TableName: table_name,
Key: {
id: contract_id
},
UpdateExpression: "set #simulator = list_append(#simulator, :action)",
ExpressionAttributeNames: {
"#simulator": "simulator"
},
ExpressionAttributeValues: {
":action": {'choice': action}
}
};
действие - это строковый параметр.
Симулятор, a и b - объект карты. Я хочу вставить "выбор" после a & b.
После большого количества поисков и некоторых неудачных помощников от друзей, я отправляю это сообщение.
Что вы думаете о моем запросе?
Хорошей недели, Матье
Наконец, я нашел решение:
const params = {
TableName: table_name,
Key: {
id: contract_id
},
UpdateExpression: "set simulator.#property = :action",//list_append(#simulator, :action)",
ExpressionAttributeNames: {
"#property": "choice"
},
ExpressionAttributeValues: {
":action": action
}
};
Благодаря этому посту: Как поместить новую пару ключ-значение в карту в DynamoDB? (Джава)