Предоставленный ключевой элемент не соответствует схеме - updateItem - PullRequest
0 голосов
/ 24 октября 2018
      var params = {
          ExpressionAttributeNames: {
            "#AT": "date"
          },
          ExpressionAttributeValues: {
            ":t": {
              BOOL: false
            }
          },
          Key: {
            "#AT": {
              N: data.Items[i].date.N
            },
            "accountid": {
              S: data.Items[i].accountid.S
            }
          },
          ReturnValues: "ALL_NEW",
          TableName: "tab",
          UpdateExpression: "SET #AT = :t"
        }
        db.updateItem(params, function (err, data) {
          if (err) console.log(err);
          else {
            //console.log(data);
          }
        });

То, что происходит, - то, что код не работает.Это дает мне эту ошибку:

сообщение: 'Предоставленный ключевой элемент не соответствует схеме'

Это то, что находится в деталях таблицы:

Основной ключ раздела - дата (Число)

Основной ключ сортировки -

1 Ответ

0 голосов
/ 24 октября 2018

Проблема в том, что у вас есть составной ключ (date + accountid) в ваших параметрах, но ваша таблица настроена только с ключом раздела.

Либо используйте это:

  var params = {
    ExpressionAttributeValues: {
      ":t": { BOOL: false }
    },
    ExpressionAttributeNames: {
      "#at": "isRelevant",
    },
    Key: {
      "date": { N: data.Items[i].date.N }
    },
    ReturnValues: "ALL_NEW",
    TableName: "tab",
    UpdateExpression: "SET #at = :t"
  }
  db.updateItem(params, function (err, data) {
    if (err) {
      console.log(err);
    } else {
      //console.log(data);
    }
  });

Или, если вы ожидали использовать accountid в качестве ключа сортировки, вам нужно перестроить таблицу.

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