用户将输入多个用户名,我想在DynamoDB表中搜索单个API调用中每个用户的所有id。以下是graphql用户模式的重要部分:
type User
@model
@key(name: "byName", fields: ["username"], queryField: "findUsername")
{
id: ID!
email: AWSEmail!
username: String!
firstName: String
lastName: String
createdAt: AWSDateTime
updatedAt: AWSDateTime
}
我想创建一个查询,它获取用户名列表,并在单个api调用中返回每个用户的用户id。我不知道如何动态地和单独地将用户名添加到查询中。顺便说一句,我正在使用aws放大来帮助dynamodb和graphql。这也是一个React Native项目。
您可以在AWS AppSync中使用批处理操作运行多个查询和突变。例如:BatchGetItem
type Post {
id: ID!
title: String
}
type Query {
batchGet(ids: [ID]): [Post]
}
样本查询
query get {
batchGet(ids:[1,2,3]){
id
title
}
}
batchGet.request.vtl
#set($ids = [])
#foreach($id in ${ctx.args.ids})
#set($map = {})
$util.qr($map.put("id", $util.dynamodb.toString($id)))
$util.qr($ids.add($map))
#end
{
"version" : "2018-05-29",
"operation" : "BatchGetItem",
"tables" : {
"Posts": {
"keys": $util.toJson($ids),
"consistentRead": true
}
}
}
batchGet.response.vtl
$util.toJson($ctx.result.data.Posts)
有关更多详细信息,请查看本教程。https://docs.aws.amazon.com/appsync/latest/devguide/tutorial-dynamodb-batch.html