簡體   English   中英

無法在DynamoDB中更新

[英]Unable to update in DynamoDB

我正在嘗試使用以下代碼更新數據庫:

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字段。 有沒有辦法放置新條目並更新它?

我認為這里有兩個錯誤。

首先是你的鑰匙。 AWS文檔中的所有代碼示例(例如,類似於此頁面 )都可以讓您使用

Key: {
    'email': email,
}, 

第二個問題是,如果此項是新的(數據庫中尚未存在),則不能使用oauth_tokens.oauth_token1作為文檔路徑。 oauth_tokens還不存在,因此嘗試直接引用其子級之一是無效的。

相反,您應該使用

UpdateExpression: 'set oauth_tokens = :a',
ExpressionAttributeValues: {
    ':a': { 'oauth_token1': accessToken },
},

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM