在AppSync中,我想使用数组或字符串集更新项目,如下所示:
mutation addmeta{
addMetaDataOnPhoto(id:"xyz", metadata:["word1", "word2",...]){
metadata
}
}
这是我的突变类型的样子:
type Mutatation{
addMetaDataOnPhoto(id: String!, metadata: [String]!): Photo
}
我的问题是,该突变体应该如何看待解析器。 谢谢! :)
答案 0 :(得分:1)
要在不替换整个项目的情况下更新属性,应使用UpdateItem
DynamoDB operation。
在您的示例中,如果要替换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 typedValue。有关更多信息和实用程序,请参见AWS AppSync util reference。