带嵌套对象的AppSync GraphQL查询

时间:2019-08-05 05:27:35

标签: amazon-dynamodb graphql aws-amplify aws-appsync

我正在使用AWS Amplify开始一个新项目,并且在为带有嵌套对象的用例正确定义我的模式时遇到一些麻烦

我有以下模式

type Company
  @model
{
  id: ID!
  name: String!
  teams: [Team] @connection (name: "CompanyTeams", sortField: "name")
}

type Team
  @model
{
  id: ID!
  name: String!
  users: [User] @connection (name: "TeamUsers", sortField: "createdAt")
  company: Building @connection (name: "CompanyTeams", sortField: "name")
  teamCompanyId: ID!
}

type User
  @model
{
  id: ID!
  createdAt: String
  name: String!
  email: String!
  team: Unit @connection (name: "TeamUsers")
}

我希望能够根据公司列表和用户名来查询团队列表。

例如,让A / B / C公司中的所有团队的用户名都以“ David”开头。

我当前的架构适合吗?

通过这种查询,我可以轻松地根据公司检索团队列表

query listTeams {
  listTeams(filter: {
    teamCompanyId: {
      eq:"A"
    } 
  }) {
    items {
      name
    }
  }
}

但不确定如何在用户模型中包括搜索。我应该覆盖过滤器并添加包括新过滤器的新的自定义解析器吗?

也是使用过滤器的最佳解决方案?我相信DynamoDB过滤器仅在我们从查询或扫描得到结果后才应用。而且由于1mb的限制,它可能会引入很多读取来检索某些结果?

很高兴获得任何见解,因为我是AppSync / GraphQL和DynamoDB的新手。

谢谢。

0 个答案:

没有答案