我正在使用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的新手。
谢谢。