【发布时间】: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