【问题标题】:How to update nested object in DynamoDB如何更新 DynamoDB 中的嵌套对象
【发布时间】:2022-01-13 05:55:57
【问题描述】:

我的 DynamoDB 架构示例如下:

{
 obj :  {
                 "count" : 3,
                 "id" : [ "X123", "X234", "X233"]
             }
}

新 ID:["X007"]

现在我需要通过增加计数来更新 obj 属性并更新列表中的新项目。如何在单个查询中更新它?

【问题讨论】:

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


    【解决方案1】:

    您应该使用UpdateItem 命令和正确的UpdateExpression,即它应该使用SET 和list_append 来修改集合,并使用ADD 或SET 来增加计数。

    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Expressions.UpdateExpressions.html#Expressions.UpdateExpressions.SET.UpdatingListElements

    【讨论】:

    • 根据上述文档“在更新表达式中使用 SET 操作向项目添加一个或多个属性。如果这些属性中的任何一个已经存在,它们将被新值覆盖。”为了实现这一点,我需要在最终更新之前知道 list 的值
    • 只有当你不使用list_append时才会覆盖。您应该合并旧列表和新项目,例如 SET #my_list_attr=list_append(#my_list_attr, :new_item)
    猜你喜欢
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2022-12-21
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多