Как удалить записи в DynamodB, передав список идентификаторов - PullRequest
0 голосов
/ 21 июня 2019

Я пытаюсь удалить несколько записей из DynamodB. Я хочу сделать что-то похожее на:

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

Я хочу удалить элементы, соответствующие идентификаторам в списке, который я передаю, и их возраст также равен 10. Как это сделать в Amazon DynamoDB?

1 Ответ

0 голосов
/ 21 июня 2019

Встроенная BatchDeleteItem пакетная операция позволяет вам удалить несколько элементов одновременно, используйте следующую схему, чтобы разрешить передачу списка идентификаторов:

type YourTableItem {
    id: ID!
    SomeField: String
}

type Mutation {
    batchDelete(ids: [ID]): [YourTableItem]
}

schema {
    mutation: Mutation
}

Далее, присоедините преобразователь к *Поле 1005 * со следующим шаблоном сопоставления запросов:

#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 здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...