Graphql 理解Prisma upsert
我试图在Prisma中使用一对多关系,我感到困惑。我的目标是,在创建运动员时,将为其分配一个团队,同样,该团队也将更新以显示分配给它的所有运动员。我的解析器如下所示Graphql 理解Prisma upsert,graphql,apollo-server,prisma,Graphql,Apollo Server,Prisma,我试图在Prisma中使用一对多关系,我感到困惑。我的目标是,在创建运动员时,将为其分配一个团队,同样,该团队也将更新以显示分配给它的所有运动员。我的解析器如下所示 async function signUpUser(parent, args, { prisma }, info) { let password = await bcrypt.hash(args.password, 10) const team = await prisma.team({ id: args.team
async function signUpUser(parent, args, { prisma }, info) {
let password = await bcrypt.hash(args.password, 10)
const team = await prisma.team({ id: args.team })
const user = await prisma.createUser({
...args,
password,
team: { connect: { id: team.id } }
})
//create special user based on user type from args
switch(args.userType) {
case "ATHLETE":
createAthlete(user, prisma)
break
case "COACH":
createCoach(user, prisma)
break
case "HEAD_COACH":
createHeadCoach(user, prisma)
break
case "PARENT":
createParent(user, prisma)
break
default:
createAthlete(user, prisma)
}
return {
user
}
}
async function createAthlete(user, prisma) {
const athlete = await prisma.createAthlete({
user: { connect: { id: user.id } }
})
return athlete
}
这段代码几乎可以按照我所希望的方式工作。用户被设置为一个团队和一名运动员。但是,在我的数据模型中,我希望存储它们的团队显示分配给该团队的所有运动员。我相信我需要使用upsert方法,但不知道如何使用
async function createAthlete(user, team, prisma) {
const athlete = await prisma.createAthlete({
user: { connect: { id: user.id } }
})
const updatedTeam = await prisma.updateTeam({
where: { id: team.id },
data: {
athletes: {
connect: {
id: athlete.id,
}
}
},
})
return {athlete, updatedTeam}
}