Как удалить несколько атрибутов из DynamoDB при обновлении - PullRequest
0 голосов
/ 27 февраля 2020

Я хочу удалить два атрибута из элемента в таблице DynamoDB. В документах и ​​везде в inte rnet показано удаление только одного атрибута. Можно ли удалить несколько атрибутов одновременно из элемента в таблице DynamoDB. Если так, то как? Ниже приведен код, который я пробовал:

const params = {
  TableName: process.env.REPORTS_TABLE,
  Key: {
    ReportId: removeParams.reportId
  },
  UpdateExpression: 'REMOVE #param1, #param2',
  ExpressionAttributeValues: { '#param1': 'StartDate', '#param2': 'EndDate' },
  ReturnValues: 'UPDATED_NEW'
};
const res = await updateReport(params);

Я получаю следующую ошибку:

ValidationException: ExpressionAttributeValues contains invalid key: Syntax error; key: "#param2"

Это ограничение от AWS или есть какой-либо другой способ сделать это?

Ответы [ 2 ]

1 голос
/ 27 февраля 2020

Я считаю, что проблема в том, что вам нужно передать ExpressionAttributeNames, а не ExpressionAttributeValues.

1 голос
/ 27 февраля 2020

Документация показывает удаление нескольких атрибутов ...

Сообщение об ошибке ссылается на эту строку ...
ExpressionAttributeValues: { '#param1': 'StartDate', '#param2': 'EndDate' },

ExpressionAttributeValues не нужно просто удалять атрибуты ...

Попробуйте:

const params = {
  TableName: process.env.REPORTS_TABLE,
  Key: {
    ReportId: removeParams.reportId
  },
  UpdateExpression: 'REMOVE #param1, #param2',
  ReturnValues: 'UPDATED_NEW'
};
const res = await updateReport(params);
...