1

私は 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 } }
]
4

0 に答える 0