我正在嘗試查找如何在 prisma 客戶端中創建“子”物件的示例。
假設這是我的架構(假示例):
model User {
id: string,
posts: Post[]
}
model Post {
userId: int,
user: User
}
所以在這個例子中,我將“孩子”稱為用戶的帖子。
現在,假設我已經“擁有”了用戶物件。那么如何為該用戶創建帖子?
let user = await prismaClient.user.upsert({
where: {id: "someId"},
update: {},
create: {id: "someId"}
}
user.createPost (???) // <--- What do I write here?
uj5u.com熱心網友回復:
考慮這個棱鏡模式。
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
}
})
}
您可以從此參考中了解嵌套寫入。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451189.html
標籤:打字稿 PostgreSQL 棱镜
上一篇:如何對具有相同列的兩個表求和?
