【发布时间】:2021-12-15 15:55:38
【问题描述】:
我在获取相关数据的总和时遇到了一些麻烦。
这是我的架构:
model Vote {
userId Int
user User @relation(fields: [userId], references: [id])
itemId Int
item Item @relation(fields: [itemId], references: [id])
value Int
@@id([userId, itemId])
}
model Item {
id Int @id @default(autoincrement())
userId Int
user User @relation(fields: [userId], references: [id])
listId Int
list List @relation(fields: [listId], references: [id])
votes Vote[]
body String @db.VarChar(255)
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model List {
id Int @id @default(autoincrement())
userId Int
user User @relation(name: "Ownership", fields: [userId], references: [id])
items Item[]
sharedWith User[] @relation(name: "Shared")
title String @db.VarChar(255)
description String?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
model User {
id Int @id @default(autoincrement())
email String @unique
password String
name String?
lists List[] @relation(name: "Ownership")
items Item[]
votes Vote[]
sharedWith List[] @relation(name: "Shared")
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
}
我想要得到的是:
- 1 按 ID 列出
- 包含的列表项
- 对于每个项目的值总和(来自投票表)。
这是我想出的:
prisma.list.findUnique({
where: { id },
include: {
items: {
include: {
votes: {
include: {
_sum: {
select: {
value: true,
},
},
},
},
},
},
},
})
我根据我在网上找到的多个不同查询(大部分在 Prisam Docs 中)构建了查询。
我还注意到 Prisma Docs 缺少很多东西,例如(添加/删除相关数据 - 多对多关系)。有没有更好的文档或包含此类内容的示例项目?
谢谢!
【问题讨论】:
标签: javascript postgresql prisma