Сейчас работаю над проектом с Prisma. Я разработал таблицу отношений m к n. Ниже мой код. schema.prisma
model Artists {
id Int @id @default(autoincrement())
artistName String?
Albums Albums[]
Artists_Tracks Artists_Tracks[]
}
model Artists_Tracks {
id Int @id @default(autoincrement())
trackId Int?
artistId Int?
Artists Artists? @relation(fields: [artistId], references: [id])
Tracks Tracks? @relation(fields: [trackId], references: [id])
@@index([artistId], name: "Artists_Tracks_artistId_foreign_idx")
@@index([trackId], name: "Artists_Tracks_trackId_foreign_idx")
}
model Tracks {
id Int @id @default(autoincrement())
trackName String?
albumTrackNumber Int?
albumId Int?
Albums Albums? @relation(fields: [albumId], references: [id])
Artists_Tracks Artists_Tracks[]
@@index([albumId], name: "Tracks_albumId_foreign_idx")
}
Это мой код призмы. Я хочу выполнить поиск по названию трека и получить информацию обо всех треках с именем исполнителя.
+ edit) Я пробовал
// first try
optObj.include = {
Albums: {
select: { cover: true },
},
Artists_Tracks: {
Albums: true
},
};
// second try
optObj.include = {
Albums: {
select: { cover: true },
},
Artists_Tracks: true,
Artists: true,
};
const result = await prisma.tracks.findMany(optObj);
и используйте обещание.all, чтобы получить имя исполнителя для каждого трека. Есть ли способ сделать это один раз по одному запросу? Я почти уверен, что есть более лучший способ сделать это. Заранее спасибо.