Как обновить элемент таблицы DynamodB новыми элементами, используя первичный ключ индекса? - PullRequest
0 голосов
/ 28 июня 2019

Я пытаюсь обновить элемент в таблице новыми элементами, используя первичный ключ индекса.Мой первичный ключ индекса - storeId, и я хочу обновить или добавить новые элементы ко всем элементам с заданным storeId.

Я пытался с выражением обновления в запросе, когда я пытаюсь с этим запросом, появляется сообщение об ошибке: «Предоставленный ключевой элемент не соответствует схеме».Есть ли способ решить эту проблему?

Этот код, который я использую для добавления новых полей в существующие Предметы, в Item есть пустой массив storeAddress для добавления новых элементов.Или я хочу добавить все элементы в виде новых полей в элементе, не входящем в массив

  var params = {
    TableName: "Users",
    IndexName: "storeId-index",
    Key: {
        "storeId": storeId,
    },
    "UpdateExpression": "SET #attrName =  :attrValue",
    "ExpressionAttributeNames": {
        "#attrName": "storeAddress"
    },

    "ExpressionAttributeValues": {
        ":attrValue": { title: title, street: street, city: city, state: state, country: country, postCode: postCode }
    },
    ReturnValues: "UPDATED_NEW"
};

docClient.update(params, (error) => {
    if (error) {
        console.log(error);

    }
    else {
        console.log("success");

    }
    // res.json({ id, name, info });
});  

Сообщение об ошибке «Сообщение:« Предоставленный ключевой элемент не соответствует схеме ».Я не нашел способа добавить новые элементы к существующим элементам в таблице с помощью первичного ключа индекса (storeId), который не является уникальным в моем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...