假设我有一个典型的数据模型,许多教程中都使用了该模型:
type User {
id: ID! @unique
name: String!
posts: [Post!]!
}
type Post {
id: ID! @unique
title: String!
content: String!
published: Boolean! @default(value: "false")
author: User!
}
我是否可以构建一个查询来获取10个有更多帖子的用户的列表? 基本上,我需要按帖子的“数量”查询排序…但是我还没有找到一种方法
任何帮助将不胜感激
欢呼
答案 0 :(得分:3)
正如@ shivam-panday在评论中所说,Prisma当前尚未实现(请参见问题:https://github.com/prisma/prisma/issues/95)
此评论特别说明了您的问题:
也能够通过“多对多”相关字段(通过相关项的计数)进行订购,这将是很棒的。
例如,获取前10个投票最多的链接的列表(假设投票是[Vote!]!类型的相关字段):
query { allLinks(first: 10, orderBy: votes_DESC) { id url description _votesMeta { count } } }
当前,要获取该列表,您必须查询每个Link,然后在客户端上对其进行排序/切片,这可能会导致大量的超量提取。
有问题的评论:https://github.com/prisma/prisma/issues/95#issuecomment-320433296
答案 1 :(得分:0)
我遇到了与Prisma相同的问题,这是一个主要问题。检索所有用户的所有帖子,并按帖子数进行排序不是一个可行的解决方案。
我能想到的解决方法是跟踪帖子的数量(每次添加/删除时)并将其存储在用户中。
type User {
id: ID! @unique
name: String!
postsCount: Int!
posts: [Post!]!
}
通过这种方式,Prisma将公开postsCount的排序选项。
我不确定Prisma 2是否可以为该问题提供适当的解决方案……有人知道吗?