Dynamo DB中的操作数类型不正确

时间:2018-03-11 11:53:30

标签: amazon-web-services amazon-dynamodb

Dynamo DB table

我正在尝试将一个列表附加到“Hi”列表中,但是在list_append调用中出现了无效的运算符类型,其中一个是Map,但这些仍然是我的列表......

以下是API调用:

response =    node_table.update_item(
              TableName='xyz',
              Key={......},
              UpdateExpression='SET #ri = list_append(:vals, #ri)',
              ExpressionAttributeNames={'#ri':'Hello.Hi'},
              ExpressionAttributeValues={":vals": {"L": [ { "S": "Something" }]}})

错误:无效的UpdateExpression:运算符或函数的操作数类型不正确;运算符或函数:list_append,操作数类型:M

我提到DynamoDB : SET list_append not working using aws sdk,但无法弄明白

请让我知道我错过了什么

2 个答案:

答案 0 :(得分:1)

查看您的表格,Hi地图的列表。您正尝试使用字符串列表更新它:

 ExpressionAttributeValues={":vals": {"L": [ { "S": "Something" }]}})

这似乎是错误消息试图说的内容。

答案 1 :(得分:0)

Matt指出String约束实际上是错误,

这是正确的版本

response =  node_table.update_item(
        TableName='xyz',
        Key={'..},
        UpdateExpression='SET #ri = list_append(:vals, #ri)',
        ExpressionAttributeNames={'#ri':'Hello.Hi'},
        ExpressionAttributeValues={":vals": ["Something"]})