更新dynamodb中的列表元素

Vit*_*lyR 4 amazon-web-services amazon-dynamodb

我将地图列表作为DynamoDB表的一个字段。我如何更新特定元素(或更确切地说是元素字段?)

rc = table.update_item(Key={ 'username' : user }, 
    UpdateExpression="set list[:i].field = :nd",
    ExpressionAttributeValues={
        ':i' : itemnum,
        ':nd': data,
    },
    ReturnValues="UPDATED_NEW"
);
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

Invalid UpdateExpression: Syntax error; token: ":i", near: "[:i]"
Run Code Online (Sandbox Code Playgroud)

任何想法如何引用具有可变编号的列表元素。谢谢。

And*_*ang 7

改用文字:

rc = table.update_item(Key={ 'username' : user }, 
    UpdateExpression="set list[" + itemnum + "].field = :nd",
    ExpressionAttributeValues={
        ':nd': data,
    },
    ReturnValues="UPDATED_NEW"
);
Run Code Online (Sandbox Code Playgroud)

  • 是否可以通过 ID 而不是索引来查找项目?我有一个列表,例如 [{id: "111", rating: "4"},{id: "112", rating: "5"}] (2认同)