小编E.B*_*kov的帖子

prisma 按关系排序只有 _count 属性。无法按关系字段排序

考虑以下 Prisma 架构:

model Conversation {
  id           Int                         @id @default(autoincrement())
  createdAt    DateTime                    @db.Timestamp(6)
  messages     ConversationMessage[]
}

model ConversationMessage {
  id             Int                     @id @default(autoincrement())
  text           String                  @db.VarChar(1000)
  sentAt         DateTime                @map("sent_at") @db.Timestamp(6)
  conversationId Int?                    @map("conversation_id")
  userId         Int?                    @map("user_id")
  conversation   Conversation?           @relation(fields: [conversationId], references: [id])
  sender         User?                   @relation(fields: [userId], references: [id])
}
Run Code Online (Sandbox Code Playgroud)

我想运行这样的查询,以便获得按消息日期排序的对话列表,即首先包含新消息的对话列表。

prisma.conversation.findMany({
    orderBy: {
        messages: {
            sentAt: 'desc'
        }
    },
    ...
})
Run Code Online (Sandbox Code Playgroud)

但我现在可以查询的唯一方法是这样的,即关系仅具有_count某种属性。

prisma.conversation.findMany({
    orderBy: {
        messages: {
           '_count': 'desc'
        }
     },
     ...
})
Run Code Online (Sandbox Code Playgroud)

环境与设置


    OS: Mac OS,
    Database: …
Run Code Online (Sandbox Code Playgroud)

sql postgresql prisma prisma2

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

postgresql ×1

prisma ×1

prisma2 ×1

sql ×1