Обновление элемента DynamodB с помощью Appsync - PullRequest
0 голосов
/ 11 сентября 2018

В AppSync я хочу обновить элемент с массивом или набором строк следующим образом:

mutation addmeta{
  addMetaDataOnPhoto(id:"xyz", metadata:["word1", "word2",...]){
    metadata
  }
}

так выглядит мой тип мутации:

type Mutatation{
    addMetaDataOnPhoto(id: String!, metadata: [String]!): Photo
}

Мой вопрос: как должен выглядеть решательдля этой мутации.Спасибо!:)

1 Ответ

0 голосов
/ 11 сентября 2018

Чтобы обновить атрибут без замены всего элемента, следует использовать операцию UpdateItem DynamoDB .

В вашем примере, если вы хотите заменить массив metadata, ваш шаблон отображения запросов должен выглядеть следующим образом:

{
    "version" : "2017-02-28",
    "operation" : "UpdateItem",
    "key" : {
        "id" : { "S" : "${context.arguments.id}" }
    },
    "update" : {
        "expression" : "SET metadata = :vals",
        "expressionValues": {
            ":vals" : $util.dynamodb.toDynamoDBJson($ctx.args.metadata)      
        }
    }
}

Примечание: $util.dynamodb.toDynamoDBJson преобразует ваш массив в типизированное значение DynamoDB. Для получения дополнительной информации и утилит см. Справочник утилит AWS AppSync .

...