有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过传递id列表来删除dynamodb中的记录

我正在尝试从dynamodb中删除多个记录。 我想做一些类似的事情:

delete * from myTable where id in [1,2,3,4,5,6,7] and age = 10.

我想删除与我通过的列表中的id匹配且年龄也等于10岁的项目。如何在Amazon dynamoDB中实现这一点


共 (1) 个答案

  1. # 1 楼答案

    内置的BatchDeleteItem批处理操作允许您一次删除多个项,请使用以下架构来启用传递ID列表:

    type YourTableItem {
        id: ID!
        SomeField: String
    }
    
    type Mutation {
        batchDelete(ids: [ID]): [YourTableItem]
    }
    
    schema {
        mutation: Mutation
    }
    

    接下来,使用以下请求映射模板将解析器附加到batchDelete()字段:

    #set($ids = [])
    #foreach($id in ${ctx.args.ids})
        #set($map = {})
        $util.qr($map.put("id", $util.dynamodb.toString($id)))
        $util.qr($ids.add($map))
    #end
    
    {
        "version" : "2019-06-20",
        "operation" : "BatchDeleteItem",
        "tables" : {
            "YourTable": $util.toJson($ids)
        }
    }
    

    成功配置后,只需运行以下batchDelete操作:

    mutation delete {
        batchDelete(ids:[4,7]){ id }
    }
    

    它将相应地删除ID为4和7的记录

    我还建议您阅读有关DynamoDB批处理解析器here的官方教程