我有两个模型:
Post
模型和PostItem
模型。一个Post
可以有多个PostItems
.
model Post {
id Int @id @default(autoincrement())
title String @db.VarChar(300)
postItemNoteStatus String @db.Text
postItems PostItem[]
}
model PostItem {
id Int @id @default(autoincrement())
postId Int
url String? @db.VarChar(1000)
note String? @db.VarChar(300)
post Post @relation(fields: [postId], references: [id])
}
我想找到一个
Post
并返回它的所有PostItems
,但如果note
是PostItem
,则只在postItemNoteStatus
中包含visible
字段。我想在一个查询中执行此操作。目前,这就是我所拥有的:
db.post.findFirst({
where: { id},
include: { postItems: true }
})
if(post.postItemNoteStatus === 'hidden') {
post.postItems.forEach((pi) => {
delete pi.note;
});
}
这行得通,但如果
postItemNoteStatus
是hidden
,我必须手动删除笔记。我希望能够在查询中优雅地做到这一点。考虑到我的模型和关系,这可能吗?