我有一个注解表,其中有许多互动。
model comment {
id Int @id @default(autoincrement())
content String
commenterId String
commenter User @relation("commented", fields: [commenterId], references: [id])
comment_interactions comment_interaction[]
}
comment_interaction表如下所示
model comment_interaction {
userId String
commentId Int
state CommentInteraction
user User @relation(fields: [userId], references: [id])
comment comment @relation(fields: [commentId], references: [id])
@@unique([userId, commentId])
}
此处状态是CommentInteraction类型枚举。
enum CommentInteraction {
LIKED
DISLIKED
}
现在我们需要的是查询comment表,并得到LIKED
交互和DISLIKED
交互的计数。我只能得到其中一个的计数,如下所示:
const comments = await prisma.comment.findUnique({
where: { id },
select: {
id: true,
content: true,
_count: {
select: {
comment_interactions: { where: { state: "LIKED" } },
},
},
},
})
但我怎么才能计算出两者的数目呢。
1条答案
按热度按时间2guxujil1#
现在用棱镜还不可能
要计算
comment_interactions
,您需要运行第二个查询,如下所示然后将您查询与内容和下面的
否则,您可以执行原始查询,但它不太美观