当我开始充实我的第一个 GraphQL 后端时,我遇到了一个问题,即在需要数据透视表时如何处理模式和解析器中的多对多模型。
假设我有用户和团队。它们中的每一个都位于名为 UserTeam 的数据透视表中。问题是如何最好地处理解析器的数据流。
现在我可以通过为数据透视表创建一个架构并将解析器关系连接到它来处理这个问题。但是好像太乱了。如果我这样做,查询将结束,例如:
query{
user(ID: "1"){
userTeams(){
team{
name
}
}
}
}
现在必须有更好的方法来做到这一点。我只是不知道它是什么
是。
最佳答案
Sequelize 支持 belongsToMany 关联,允许您通过另一个表/模型查询关联的模型。这是 M2M 关系常用的方法,至少当您不需要来自数据透视表本身的任何数据时。例如定义如下关系:
User.belongsToMany(Team, {through: 'UserTeam'})
会让你在返回的实例上调用适当的方法:
user.getTeams()
类似地,使用 find 方法时可能包含相关模型:
User.findOne({ include:[Team] })
查看文档更多详细信息。
关于node.js - GraphQL Apollo 中的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56815912/