我有一个与编写“社交媒体”样式提要查询有关的问题,但在这种情况下,我使用的是 Prisma 2。我有一个音乐应用程序,我想在其中显示所有Albums
来自Artists
以下内容的提要User
。
在我的schema.prisma
中,我有以下模型:
用户
model User {
id Int @id @default(autoincrement())
email String @unique
following Artist[]
}
艺术家
model Artist {
id Int @id @default(autoincrement())
name String
followers User[]
albums Album[]
}
Prisma 创建一个隐式连接表,调用该表UserToArtist
来跟踪 aUser
跟随Artist
专辑
model Album {
id Int @id @default(autoincrement())
title String
date DateTime <-- this is an ISO date string
artists Artist[] <-- an album can have several artists
}
Prisma 创建一个隐式连接表,称为ArtistToAlbum
跟踪Artists
与某些关联的Albums
.
那么如何创建一个 Prisma 查询来查找用户按照Album
日期排序的所有艺术家专辑呢?这是我的第一次尝试,但这似乎不正确,专辑未按日期排序:
const results = await ctx.db.album.findMany({
where: {
date: {
gt: moment().startOf('day').toISOString()
},
artists: {
some: {
followers: {
some: {
id: args.userId, <-- the userId for the feed
},
},
},
},
},
orderBy: {
date: 'asc',
},
})
请注意我必须如何通过两个some
语句进行过滤?只是感觉不对……对于这样的查询,您有什么建议?谢谢!