! ФИКСИРОВАННЫЙ! 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? (Джава)

0 ответов

Другие вопросы по тегам