3

假设我有这个典型的数据模型,它在许多教程中都使用过:

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 个用户?基本上我需要通过帖子的“计数”来查询排序......但我还没有找到一种方法来做到这一点

任何帮助将不胜感激

干杯

4

2 回答 2

3

正如@shivam-panday 在评论中所说,这目前没有在 Prisma 中实现(参见问题:https ://github.com/prisma/prisma/issues/95 )

此评论特别解释了您的问题:

如果能够通过“对多”相关字段(通过相关项目的数量)进行排序,那就太好了。

例如,要获得投票最多的前 10 个链接的列表(假设 votes 是 [Vote!]! 类型的相关字段):

query {
  allLinks(first: 10, orderBy: votes_DESC) {
    id
    url
    description
    _votesMeta {
      count
    }
  }
}

目前,要获得该列表,您必须查询每个链接,然后在客户端对其进行排序/切片,这可能会导致大量过度获取。

有问题的评论:https ://github.com/prisma/prisma/issues/95#issuecomment-320433296

于 2018-12-05T14:53:10.837 回答
0

我遇到了与 Prisma 相同的问题,这是一个主要问题。检索所有用户及其所有帖子,并按帖子数量排序不是一个实际的解决方案。

我能想到的解决方法是跟踪帖子的数量(每次添加/删除时)并将其存储在 User.

type User {
  id: ID! @unique
  name: String!
  postsCount: Int!
  posts: [Post!]!
}

这样,Prisma 将公开 postsCount 的排序选项。

我不确定 Prisma 2 是否为这个问题提供了适当的解决方案……有人知道吗?

于 2019-08-27T06:56:52.360 回答