Amazon web services 使用Appsync更新dynamodb项
在AppSync中,我想用数组或字符串集更新项,如下所示:Amazon web services 使用Appsync更新dynamodb项,amazon-web-services,graphql,aws-appsync,Amazon Web Services,Graphql,Aws Appsync,在AppSync中,我想用数组或字符串集更新项,如下所示: mutation addmeta{ addMetaDataOnPhoto(id:"xyz", metadata:["word1", "word2",...]){ metadata } } 我的突变类型是这样的: type Mutatation{ addMetaDataOnPhoto(id: String!, metadata: [String]!): Photo } 我的问题是如何寻找这种突变的解决方案。 谢
mutation addmeta{
addMetaDataOnPhoto(id:"xyz", metadata:["word1", "word2",...]){
metadata
}
}
我的突变类型是这样的:
type Mutatation{
addMetaDataOnPhoto(id: String!, metadata: [String]!): Photo
}
我的问题是如何寻找这种突变的解决方案。
谢谢!:) 要更新属性而不替换整个项目,应使用 在您的示例中,如果要替换
元数据
数组,您的请求映射模板应该如下所示:
{
"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类型值。有关更多信息和实用程序,请参阅 要更新属性而不替换整个项目,应使用
在您的示例中,如果要替换元数据
数组,您的请求映射模板应该如下所示:
{
"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类型值。有关更多信息和实用程序,请参阅 嘿,谢谢,但我不确定这是我需要的,也许我的问题不是很好,我在这方面还是新手。所以,我需要用元素更新dynamodb表中的一列,这些元素通过stringset格式或任何colaction格式的mutatuion参数传递。我找到了一个很好的示例(示例2),但im在#metadata=:metadata附近仍然有一个invalidUpdateExpreeson语法错误。我找不到我的错误在哪里。Thanks@Tinou,我复制了你的代码,它只是返回一个空值,没有更新。是否有办法获取日志文件或更多信息。@tkerwood您可以通过控制台(例如“设置”页上的控制台)在AppSync API上启用对CloudWatch的日志记录。嘿,谢谢,但我不确定这是我需要的,也许我的问题不是很好,我在这方面还是新手。所以,我需要用元素更新dynamodb表中的一列,这些元素通过stringset格式或任何colaction格式的mutatuion参数传递。我找到了一个很好的示例(示例2),但im在#metadata=:metadata附近仍然有一个invalidUpdateExpreeson语法错误。我找不到我的错误在哪里。Thanks@Tinou,我复制了你的代码,它只是返回一个空值,没有更新。是否有办法获取日志文件或更多信息。@tkerwood您可以通过控制台(例如“设置”页上的控制台)在AppSync API上启用对CloudWatch的日志记录。