Мне нужно выполнить запрос, используя aws appsync resolver на DynamodB, основываясь на результате первого запроса.
У меня ниже таблица пользователей.
userTable
Первый запрос: найдите элемент, где userId = u1 и type = user.
Второй запрос: найдите элемент, в котором userId = «RefId, возвращенный из первого запроса» и status = complete.
Мне нужно сделать это одним запросом в appsync resolver.
#set( $expValues = {} )
#set($expression="userId = :userId ")
$!{expValues.put(":userId ", { "S" : $ctx.args.input.userId })}
#if(! $util.isNullOrEmpty($ctx.args.input.type))
#set($expression="$expression and begins_with(type)")
$!{expValues.put(":type", { "S" : $type})}
#end
{
"version" : "2018-05-29",
"operation" : "Query",
"index" : "mId_mType_index",
"scanIndexForward" : false,
"query" : {
"expression":"$expression",
#if( !${expValues.isEmpty()} )
"expressionValues" : $utils.toJson($expValues)
#end
},
#if( ${ctx.args.limit} )
"limit": ${ctx.args.limit}
#end
#if( ${ctx.args.nextToken} )
,"nextToken": "${ctx.args.nextToken}"
#end
}