【问题标题】:update list element in dynamodb更新 dynamodb 中的列表元素
【发布时间】:2019-12-13 16:06:37
【问题描述】:

我有一个地图列表作为 DynamoDB 表的一个字段。如何更新特定元素(或者,更确切地说是元素字段?) 尝试类似

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

但我收到一个错误:

Invalid UpdateExpression: Syntax error; token: ":i", near: "[:i]"

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

【问题讨论】:

    标签: amazon-web-services amazon-dynamodb


    【解决方案1】:

    改用文字:

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

    【讨论】:

    • 是否可以通过 ID 而不是索引来查找项目?我有一个列表,例如 [{id: "111", rating: "4"},{id: "112", rating: "5"}]
    • @Balaji 不,它不可用
    • 如果 itemnum 是由最终用户发送,这是否有任何安全风险?
    • @Snedden27 由您来审查用户输入,确保他们可以在给定位置更新项目。
    猜你喜欢
    • 1970-01-01
    • 2012-10-15
    • 2019-03-21
    • 2016-04-02
    • 1970-01-01
    • 2020-05-14
    • 2011-08-17
    • 1970-01-01
    • 2016-02-23
    相关资源
    最近更新 更多