【问题标题】:Dynamodb ValidationException when using AttributeValue使用 AttributeValue 时的 Dynamodb ValidationException
【发布时间】:2022-06-13 21:59:13
【问题描述】:

我的 updateItem 参数是这样的:

{
  TableName: 'tablename',
  Key: {
    pk: {
      S: 'string'
    },
    sk: { S: '2022-06-13' }
  },
  UpdateExpression: 'ADD #views :amount',
  ExpressionAttributeNames: { '#views': 'views' },
  ExpressionAttributeValues: {
    ':amount': { N: '1' }
  }
}

不知何故,我收到了这个错误:

ValidationException: Invalid UpdateExpression: 
Incorrect operand type for operator or function; 
operator: ADD, operand type: MAP, typeSet: ALLOWED_FOR_ADD_OPERAND

当我直接传递值('value')而不是像这样在我的参数中使用AttributeValues({S: 'value'})时,它可以工作:

{
  TableName: 'tablename',
  Key: {
    pk: 'my-pk',
    sk: '2022-06-13' 
  },
  UpdateExpression: 'ADD #views :amount ',
  ExpressionAttributeNames: { '#views': 'views'},
  ExpressionAttributeValues: {
    ':amount': 1
  }
}

我的代码是这样的:

try {
  const docClient = new AWS.DynamoDB.DocumentClient();
  await docClient.update(params).promise();
} catch (e) {
  console.error(e);
}

【问题讨论】:

  • 我不明白 - 有什么问题?对我来说听起来很有效。

标签: amazon-web-services amazon-dynamodb aws-sdk aws-sdk-js


猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-01
相关资源
最近更新 更多