Невозможно обновить в DynamoDB - PullRequest
0 голосов
/ 22 февраля 2019

Я пытаюсь обновить свою базу данных следующим кодом:

const patchParams = {
  TableName: 'users',
  Key: {
      email,
  },
  UpdateExpression: `set oauth_tokens.oauth_token1 = :a`,
  ExpressionAttributeValues: {
    ':a': accessToken,
  },
  ReturnValues: "UPDATED_NEW"
};

dynamoDb.update(patchParams, (putError, result) => {
  console.log(putError, result);

Но она продолжает выдавать эту ошибку: The document path provided in the update expression is invalid for update', code: 'ValidationException'

Я думаю, что это может быть, потому что нет email поле заполнено еще.Есть ли способ поставить новую запись и обновить ее?

1 Ответ

0 голосов
/ 22 февраля 2019

Я думаю, здесь есть две ошибки.

Первая - ваш ключ.Во всех примерах кода в документации AWS (например, на этой странице ) вы можете использовать

Key: {
    'email': email,
}, 

Вторая проблема заключается в том, что если этот элемент новый (еще не вбазы данных), вы не можете использовать oauth_tokens.oauth_token1 в качестве пути к документу.oauth_tokens пока не существует, поэтому нельзя пытаться напрямую ссылаться на одного из его дочерних элементов.

Вместо этого вы должны использовать

UpdateExpression: 'set oauth_tokens = :a',
ExpressionAttributeValues: {
    ':a': { 'oauth_token1': accessToken },
},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...