Amazon web services 如何使用映射模板更新DynamoDb中的布尔字段?

Amazon web services 如何使用映射模板更新DynamoDb中的布尔字段?,amazon-web-services,amazon-dynamodb,aws-appsync,Amazon Web Services,Amazon Dynamodb,Aws Appsync,我有下一个在DB中使用映射模板更新项目的代码: $!{expSet.put("available", ":available")} $!{expValues.put(":available", { "BOOL": $ctx.args.available })} 当我发送available=false时,这是可以的,但是如果available=true,我会得到错误 无法分析JSON文档:“意外字符(':'(代码 58)):应以双引号开始字段名 GraphQl中的模式 type Item {

我有下一个在DB中使用映射模板更新项目的代码:

 $!{expSet.put("available", ":available")}
 $!{expValues.put(":available", { "BOOL": $ctx.args.available })}
当我发送available=false时,这是可以的,但是如果available=true,我会得到错误

无法分析JSON文档:“意外字符(':'(代码 58)):应以双引号开始字段名

GraphQl中的模式

type Item {
....
    available: Boolean!
....
} 

我做错了什么?

您的UpdateItem请求映射模板应该如下所示:

{
"version" : "2017-02-28",
"operation" : "UpdateItem",
"key" : {
    "id" : { "S" : "${context.arguments.id}" }
},
"update" : {
    "expression" : "SET #available = :available",
    "expressionNames": {
        "#available" : "available"
    },
    "expressionValues": {
        ":available" : { "BOOL": ${context.arguments.available} }
    }
  }
}