Как обновить многоуровневые внутренние данные в DynamodB? - PullRequest
0 голосов
/ 03 мая 2019

У меня есть данные внутри dyanomodb, которые находятся во вложенном внутреннем формате, как это:

{
  "inner0": {
    "inner1": {
      "inner2": {
        "inner3": {
          "name": "david",
          "address": "US"
        }
      }
    },
    "phone": "12345"
  }
}

Как обновить поле адреса. когда я пытаюсь обновить телефон, который находится на двух уровнях, он обновляется, но сталкивается с проблемой при обновлении поля адреса или имени, которое находится на вложенном внутреннем уровне.

methods.updateinfo = function(name){
return new Promise((resolve, reject) => {
    var params = {
      TableName: tableName,
      Key: {
        'keyvalue': 12345
      },

      UpdateExpression: 'set #inner0.#inner1.#inner2.#inner3.#name = :name',

      ExpressionAttributeNames: {
       '#inner0':'inner0',
       '#inner1':'inner1',
       '#inner2':'inner2',
       '#inner3':'inner3',
       '#name': 'name'
      },
      ExpressionAttributeValues: {
        ':name': name,
      },
      ReturnValues: 'UPDATED_NEW'
    };
    docClient.update(params, function (err, data) {
      resolve(data.Attributes);
    });
  });

когда я использовал этот метод, я получаю ошибку запроса.

[error] uncaughtException: Cannot read property 'Attributes' of null
TypeError: Cannot read property 'Attributes' of null
...