如何在更新时从 DynamoDB 中删除多个属性

sha*_*ila 4 amazon-web-services node.js amazon-dynamodb dynamodb-queries

我想从 DynamoDB 表中的项目中删除两个属性。在文档和互联网上的任何地方,它都显示仅删除一个属性。是否可以从 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);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ValidationException: ExpressionAttributeValues contains invalid key: Syntax error; key: "#param2"
Run Code Online (Sandbox Code Playgroud)

这是AWS的限制还是有其他方法可以做到这一点?

Cha*_*les 12

文档显示多个属性被删除......

错误消息指的是这一行...
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);
Run Code Online (Sandbox Code Playgroud)