Prisma计数嵌套田(多对多)
在我的Prisma模式中,我有类似的东西:
model Parent {
id String @id @db.Uuid
children Child[]
}
model ChildOfChild {
id String @id @db.Uuid
parentId String @map("parent_id") @db.Uuid
status Status
parent Child @relation(fields: [parentId], references: [id])
}
model Child {
id String @id @db.Uuid
parentId String @map("parent_id") @db.Uuid
parent Parent @relation(fields: [parentId], references: [id])
children ChildOfChild[]
}
我想做类似的事情: 计数:parent.id and parent.Children.Children.Status。
使用QueryBuilder,它应该看起来像:
qb //root is Parent with alias r
.leftJoin("r.children", "s")
.leftJoin("s.children", "p")
.groupBy(["id", "p.status"])
.select(["count(*) as count", "r.id", "p.status"])
我可以在Prisma中做类似的事情,还是应该求助于RAW SQL查询?
In my prisma schema I have something like that:
model Parent {
id String @id @db.Uuid
children Child[]
}
model ChildOfChild {
id String @id @db.Uuid
parentId String @map("parent_id") @db.Uuid
status Status
parent Child @relation(fields: [parentId], references: [id])
}
model Child {
id String @id @db.Uuid
parentId String @map("parent_id") @db.Uuid
parent Parent @relation(fields: [parentId], references: [id])
children ChildOfChild[]
}
And I want to do something like:
Count by: Parent.id and Parent.children.children.status.
With querybuilder it should look something like:
qb //root is Parent with alias r
.leftJoin("r.children", "s")
.leftJoin("s.children", "p")
.groupBy(["id", "p.status"])
.select(["count(*) as count", "r.id", "p.status"])
Can I do something like that in Prisma or should I resort to raw SQL query?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用
count
操作员获取嵌套字段的计数:计数参考这是使用计数运算符的示例:
You can use the
count
operator to get count for nested fields: Count ReferenceHere's an example of using count operator: