连接查询中的orderBy Int类型棱镜错误

时间:2019-04-21 14:58:00

标签: graphql apollo react-apollo apollo-client prisma

以下是错误所在,以及如何重现该错误!

根据Order by Related Fields问题,当这是模式

时,用户仍无法按postsConnectionorderBy: upvotes_DESC进行排序
type Post {
  id: ID!
 ...
  upvotes: [Upvote]!
 ...
}

因此,我创建了一个upvotesNumber字段,该字段接受一个Int。每次从后端更改Upvote时,我都会增加或减少该字段。

但是要用postsConnectionupvotesNumber进行排序,orderBy引入了一个严重的错误。

query {
  postsConnection (
    orderBy: upvotesNumber_DESC, 
    first: 1
  ) {
    edges {
      node {
        id
        title
        createdAt
        upvotesNumber
      }
    }
    pageInfo {
      endCursor
    }
  }
}

假设我有3个帖子。 第一个帖子有2个投票,即upvotesNumber: 2第二个帖子有1个投票,并且第三条帖子具有0个投票。

在这种情况下,我得到了正确的postsConnection订单,并且所有三个帖子都是使用after参数获取的。

但是,如果两个或两个以上的帖子具有相同的upvotesNumber,则这些帖子不会呈现postsConnection中!

考虑,第一篇文章具有1个投票,第二篇文章也具有1个投票,没有任何评论 ... 那么即使我使用after给出的正确endCursor值,相同的查询也会返回返回第一和第三条帖子,但会跳过第二条

当第二个和第三个帖子的投票数为0且第一个帖子的投票数为1时,也会发生同样的情况。然后,查询将返回第一个和第二个帖子,但会跳过三个。

预期的行为

我希望它能正确呈现所有帖子,就像我按createdAt_DESC订购它时一样。 createdAt_DESC运作良好。我想按upvotesNumber对帖子进行排序,即使它们相同!

版本:  -Prisma服务器:v1.26.0

  • prisma CLI:prisma/1.26.4 (darwin-x64) node-v11.4.0

  • 操作系统:OSX Mojave

  • 其他依赖项:prisma-clientprisma-binding

其他上下文 这使我无法使用Prisma。我是新手。这可能是Prisma的工作方式,或者我做错了。请帮助

我在发布此错误报告之前阅读的资源

Order by Multiple Fields

Order by Related Fields

Load More on Upvote bug

这个SO问题是这个GitHub issue的副本

0 个答案:

没有答案