考虑以下 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)