使用Appsync解析器,AWS dymaodb的嵌套查询

时间:2019-05-06 14:11:17

标签: amazon-web-services amazon-dynamodb graphql aws-appsync

我需要根据第一个查询的结果在dynamodb上使用aws appsync解析器运行查询。 我有下面的用户表。 userTable

第一个查询:查找其中userId = u1并键入= user的项目。 第二个查询:找到一个项目,其中userId =“从第一个查询返回的RefId”和status = complete。

我需要在appsync解析器中的一个查询中执行此操作。


#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

}

1 个答案:

答案 0 :(得分:2)

您可以使用AWS AppSync中的管道求解器来执行此操作。管道解析器可以具有多个解析器功能,这些功能可以具有自己的数据源。管道中的下一个功能可以使用上一个解析器的结果。

  

我需要在appsync解析器中的一个查询中执行此操作。

我不知道您为什么(想)需要这个,但这是不可能的。