Me gustaría mostrar los "Hashtags más usados" en mi aplicación.
Es solo una relación simple de muchos a muchos:
model Post { id Int @id @default(autoincrement()) title String @db.VarChar(255) description String @db.VarChar(255) hashtags PostHashtag[] } model PostHashtag { post Post @relation(fields: [postId], references: [id]) postId Int hashtag Hashtag @relation(fields: [hashtagId], references: [id]) hashtagId Int @@id([postId, hashtagId]) @@unique([postId, hashtagId]) } model Hashtag { id Int @id @default(autoincrement()) name String @db.VarChar(24) posts PostHashtag[] }Realmente no puedo encontrar una manera de agrupar por el campo "nombre" del "Hashtag" en la tabla PostHashtag.
Mi objetivo es una consulta que me devuelva los 15 hashtags más usados. Y desafortunadamente los documentos no me ayudarán con esto.
Esto devolverá los 15 hashtags más usados ordenándolos con recuentos de posts , con los recuentos incluidos en el resultado:
const topHashtags = await prisma.hashtag.findMany({ take: 15, orderBy: { posts: { _count: 'desc' }, }, include: { _count: { select: { posts: true }, }, }, });Fue más fácil de lo que pensaba:
return await prisma.hashtag.groupBy({ by: ['name'], _count:{ name: true }, orderBy: { _count: { name: 'desc', } } })