DynamoDB更新-仅在使用表达式时可以指定ExpressionAttributeNames

时间:2019-04-27 14:51:35

标签: amazon-web-services nosql amazon-dynamodb dynamodb-queries

我需要另一组眼神。在我生命中,我发现用于Dynamo DocumentClient的 update 方法-(此处为https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html#update-property)所使用的参数集没有问题。

{
    TableName: "mygame-dev",
    Key: { pk: "09d017aa-cbf7-42ce-be6a-a94ecb58f9a7", sk: "GAME" },
    ExpressionAttributeNames: { "#GAMELASTUPDATED": "gameLastUpdated", "#GAMETITLE": "gameTitle" },
    ExpressionAttributeValues: { ":gamelastupdated": 1556376010704, ":gametitle": "test title 1" },
    UpdateExpression: "SET #GAMELASTUPDATED = :gamelastupdated, #GAMETITLE = :gametitle",
    ReturnValues: "ALL_NEW"
};

错误:

  

ValidationException:只能指定ExpressionAttributeNames   使用表达式时

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

无视,这是一个复制和粘贴问题...我使用的是“查询”而不是“更新”

原是:

const updateGameResult = await ddbCall("query", params);

应该是:

const updateGameResult = await ddbCall("update", params);