以下是错误所在,以及如何重现该错误!
根据Order by Related Fields问题,当这是模式
时,用户仍无法按postsConnection
对orderBy: upvotes_DESC
进行排序
type Post {
id: ID!
...
upvotes: [Upvote]!
...
}
因此,我创建了一个upvotesNumber
字段,该字段接受一个Int
。每次从后端更改Upvote时,我都会增加或减少该字段。
但是要用postsConnection
对upvotesNumber
进行排序,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-client
,prisma-binding
等
其他上下文 这使我无法使用Prisma。我是新手。这可能是Prisma的工作方式,或者我做错了。请帮助
我在发布此错误报告之前阅读的资源