0

我在我的 dynamodb 表中存储具有以下结构的项目。

Item = {"response": [
    {
        "answers": {
            "11-18": 0,
            "19-24": 0
        }
    }
]}

我想逐步更新 response[0].answers.11-18。我的命令是:

table_resource.update_item(
        Key={
            'id': 123
        },
        UpdateExpression="set response[0].answers.11-18 = response[0].answers.11-18 + :inc",
        ExpressionAttributeValues={":inc": 1},
        ReturnValues="UPDATED_NEW",
)

我收到以下错误。

An error occurred (ValidationException) when calling the UpdateItem operation: Invalid UpdateExpression: Syntax error; token: "11", near: ".11-"
4

1 回答 1

2

您的嵌套属性11-18以数字开头,因此您不能在更新表达式中使用它。

如果属性名称以数字开头或包含空格、特殊字符或保留字,则必须使用表达式属性名称来替换表达式中的属性名称。

您可以使用占位符 ExpressionAttributeNames解决此问题。

于 2018-11-21T21:01:26.247 回答