graphql - 如何针对一个字段过滤具有多个值的表
问题描述
我是新手AWS App Sync
,我想查询哪个字段接受多个值并根据输入返回结果。这可能吗?
listBookByName(bookID: [String], limit: Int, nextToken: String): listBookByNameConnection
解决方案
您可以使用DynamoDB 批处理解析器来完成此操作。
您可以将解析器附加到listBookByName字段。请求映射模板(获取 GraphQL 查询并将其转换为 DynamoDB 查询)如下所示:
#set($ids = [])
#foreach($id in ${ctx.args.bookID})
#set($map = {})
$util.qr($map.put("id", $util.dynamodb.toString($id)))
$util.qr($ids.add($map))
#end
{
"version" : "2018-05-29",
"operation" : "BatchGetItem",
"tables" : {
"Books": {
"keys": $util.toJson($ids),
"consistentRead": true
}
}
}
然后,您的响应映射模板必须将结果编组到您的listBookByNameConnection类型中。
这是文档中的一个示例,其中他们有batchGet查询,该查询采用标识符列表并返回帖子列表。
https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-batch.html#single-table-batch
推荐阅读
- python - 当 x 轴使用 datetime 对象时,如何使用 Matplotlib 的 PatchCollection 从误差线创建框?
- java - Command injection attack: tempered input value with &&
- firebase - How to get a list of feed items from a Query Document Snapshot?
- c# - I can't find Assembly-CSharp-firstpass.dll in a unity game folder
- mercurial - How to indicate the merge tool on command line when running `hg histedit`
- assembly - Assembly x86 - Addressing variables in memory (answer is provided, looking for an explanation)
- python - Adding deep learning model at django
- http - 为什么逻辑非字符 (¬) 出现在 HTTP GET 查询字符串中
- android - MaterialDatePicker returning wrong value
- reactjs - 如何做一个有条件的地图功能反应