我正在尝试使用以下代码更新数据库:
const patchParams = {
TableName: 'users',
Key: {
email,
},
UpdateExpression: `set oauth_tokens.oauth_token1 = :a`,
ExpressionAttributeValues: {
':a': accessToken,
},
ReturnValues: "UPDATED_NEW"
};
dynamoDb.update(patchParams, (putError, result) => {
console.log(putError, result);
但是它一直抛出此错误:
The document path provided in the update expression is invalid for update',
code: 'ValidationException'
我认为这可能是因为尚未填充email
字段。有没有办法放置新条目并进行更新?
答案 0 :(得分:0)
我认为这里有两个错误。
第一个是您的密钥。 AWS文档中的所有代码示例(例如this page)都可以让您使用
Key: {
'email': email,
},
第二个问题是,如果此项是新的(数据库中尚未存在),则不能使用oauth_tokens.oauth_token1
作为文档路径。 oauth_tokens
尚不存在,因此尝试直接引用其子级之一是无效的。
相反,您应该使用
UpdateExpression: 'set oauth_tokens = :a',
ExpressionAttributeValues: {
':a': { 'oauth_token1': accessToken },
},