Prisma 客户端创建 "child" object?

Prisma client create a "child" object?

我正在尝试寻找如何在 prisma 客户端中创建“child”object 的示例。

假设这是我的架构(假示例):

model User {
    id: string,
    posts: Post[]
}

model Post {
    userId: int,
    user: User
}

所以在这个例子中,我将“child”称为用户的Post。

现在,假设我已经“拥有”用户 object。那么如何为该用户创建 Post?

let user = await prismaClient.user.upsert({
    where: {id: "someId"},
    update: {},
    create: {id: "someId"}
}

user.createPost (???) // <--- What do I write here?

考虑这个 prisma 模式。

datasource db {
  url      = env("DATABASE_URL")
  provider = "postgresql"
}

generator client {
  provider = "prisma-client-js"
}

model User {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  email     String   @unique
  name      String?
  role      Role     @default(USER)
  posts     Post[]
}

model Post {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  published Boolean  @default(false)
  title     String   @db.VarChar(255)
  author    User?    @relation(fields: [authorId], references: [id])
  authorId  Int?
}

这是创建帖子的方式,同时将其链接到通过 upsert 创建的用户。

  let user = await prismaClient.user.upsert({
    where: {id: "someId"},
    update: {},
    create: {id: "someId"}
}

  await prisma.postA.create({
    data:{
      title: 'Post for prisma',
      authorId: user.id
    }
  })
}

您可以从这里了解嵌套写入reference