【发布时间】:2020-11-07 20:24:35
【问题描述】:
我有一个与编写“社交媒体”样式提要查询有关的问题,但在这种情况下,我使用的是 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 的隐式连接表来跟踪 User 何时跟随 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 语句?只是感觉不对...对于这样的查询,您有什么建议?谢谢!
【问题讨论】:
标签: javascript prisma prisma2