私は findMany() ユーザーと orderBy の投稿数を取得しようとしています。ドキュメントでそれを行う方法を正確に見つけましたが、投稿が0のユーザーを+ infinityとしてカウントすることを除いて機能します。 orderBy: {posts: {count: asc}}
たとえば、投稿数が 1 のユーザーから始まり、投稿数が多いユーザーまで昇順で並べ替えられますが、最後のユーザーの投稿数は 0 です。下降時はその逆。
私はプロバイダーとしてpostgresを使用しています。この問題をグーグルで調べて、この質問にタイトルを付ける方法さえ本当にわかりません。助けてください。
model User {
id Int @id @default(autoincrement())
posts Post[]
}
model Post {
id Int @id @default(autoincrement())
user User @relation(fields: [userID], references: [id])
userID Int
}
await prisma.user.findMany({
orderBy: {
posts: {
count: 'desc',
},
},
});
降順での小さなテストの出力。投稿数が 0 2 1 の順序になっていることがわかります (昇順では、出力順序は 1 2 0 です)。
[
{ id: 3, _count: { posts: 0 } },
{ id: 1, _count: { posts: 2 } },
{ id: 2, _count: { posts: 1 } }
]