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

How to remove multiple attributes from DynamoDB on update

我想从 DynamoDB 中的一个项目中删除两个属性 table。在文档和互联网上的任何地方,它都显示只删除一个属性。是否可以一次从 DynamoDB table 中的项目中删除多个属性。如果是这样,如何?下面是我试过的代码:

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 的限制还是有其他方法可以做到这一点?

documentation 显示多个属性被删除...

错误消息指的是这一行...
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);

我认为问题在于您需要传入 ExpressionAttributeNames,而不是 ExpressionAttributeValues