Graphql 理解Prisma upsert

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

我试图在Prisma中使用一对多关系,我感到困惑。我的目标是,在创建运动员时,将为其分配一个团队,同样,该团队也将更新以显示分配给它的所有运动员。我的解析器如下所示

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}
}