Aws lambda 递增AWS Lambda和DynamoDB中嵌套属性中的值

Aws lambda 递增AWS Lambda和DynamoDB中嵌套属性中的值,aws-lambda,aws-sdk-nodejs,Aws Lambda,Aws Sdk Nodejs,这是我添加新字段或增加嵌套属性的查询 const params = { TableName: process.env.DYNAMODB_GAMES_TABLE, Key: { id: gameId }, UpdateExpression: 'set players.#player.#score = players.#player.#score + :s', ExpressionAttributeNames: { '#playe

这是我添加新字段或增加嵌套属性的查询

const params = {
    TableName: process.env.DYNAMODB_GAMES_TABLE, 
    Key: {
        id: gameId
    },
    UpdateExpression: 'set players.#player.#score = players.#player.#score + :s',
    ExpressionAttributeNames: {
      '#player': playerId,
      '#score': 'score'
    },
    ExpressionAttributeValues: {
      ':s': 1
    },
    ReturnValues: "ALL_NEW"
  };
这就是我得到的错误

{
  "message": "The document path provided in the update expression is invalid for update",
  "code": "ValidationException",
  "time": "2020-05-21T03:03:14.328Z",
  "requestId": "Q04QEP1G3E2LAM43I04ADLM4IRVV4KQNSO5AEMVJF66Q9ASUAAJG",
  "statusCode": 400,
  "retryable": false,
  "retryDelay": 27.814212380235393
}
我的物体看起来像

{
  "id": "09e7a690",
  "players": {
    "M3EDJeHtoAMCLJg": [
      {
        "cardId": "1",
        "cardTitle": "test",
        "pun": "this is a pun"
      }
    ]
  }
}

具有此ID的玩家是否存在?否则,它将失败并显示此错误消息。您可能应该添加一个中间步骤,使用
创建具有给定ID的播放器(如果不存在
)。看看这里:是的,你是对的。它有助于从JavaScript对象的角度进行思考,一旦单击它,一切都变得非常完美:)很高兴评论很有帮助。具有此ID的玩家是否存在?否则,它将失败并显示此错误消息。您可能应该添加一个中间步骤,使用
创建具有给定ID的播放器(如果不存在
)。看看这里:是的,你是对的。它有助于从JavaScript对象的角度进行思考,一旦单击它,所有这些都变得非常完美:)很高兴评论是有帮助的