所以我使用GraphQL与Hasura和阿波罗在我的Android应用程序。该应用程序与体育相关,它存储了一场比赛的多个分段中每个球员的多个得分集。我的Postgres数据库有以下表格(包含相关字段):
Match (id, other_fields...)
Segment (id, match_id, other_fields...)
Segment_Player (id, segment_id, player_id)
Player (id, other_fields...)
Score (id, segment_id, player_id, other_fields...)
Segment_Player
是在Segment
和Player
表之间的一个多对多的桥接表。有数组关系从Match
到Segment
和从Player
到Score
。
我想查询一场比赛中每个球员的分数,这些分数由段分开。我想要的响应应该类似于以下结构:
Match
--Segment
----Player
------Score
我面临的问题是,我无法找到一种方法来过滤PlayerId
和SegmentId
上的分数<代码>玩家-分数
关系可以给我该玩家的所有分数。或者我可以在段
和分数
之间创建一个关系,该关系将给出该段中每个玩家的分数。但这两种方法中的任何一种都会让我在客户端进行过滤。
我希望能够在where子句中提供作为参数返回的数据,如下所示:
query PointsQuery($matchId: String!) {
SegmentQL: segment(where: {matchId: {_eq: $matchId}}) {
SegmentId: id
segment_player {
player {
...PlayerQL
scores(where: {segmentId: {_eq: SegmentId}}) {
...ScoreQL
}
}
}
}
}
如何在不过滤客户端数据的情况下实现这一点。
我知道这太晚了,但是查询将按原样工作,没有第二个where子句
query PointsQuery($matchId: String!) {
SegmentQL: segment(where: {matchId: {_eq: $matchId}}) {
SegmentId: id
segment_player {
player {
...PlayerQL
scores {
...ScoreQL
}
}
}
}
}
因为你只会得到与该段相关的球员,然后你只会得到与该段球员相关的分数。
如果分数实际上与某个段相关,并且您希望该段的所有分数,而不是该段球员的所有分数,那么您应该添加另一个关系
query PointsQuery($matchId: String!) {
SegmentQL: segment(where: {matchId: {_eq: $matchId}}) {
SegmentId: id
score {
...ScoreQL
}
segment_player {
player {
...PlayerQL
}
}
}
}
我正在努力学习GraphQL( 我只得到一级字段,比如: 以下是我的模式: 我的解析器: 知道我做错了什么吗?
问题内容: 我在Google Cloud Firestore中的查询条件有问题。 下面是我的代码,以获得第一个以HA_开头的文档并按ID DESC排序 我想获取文章ID为“ HA_”或“ XE_”开头的文章的最后ID 例如上图: if(articleId以“ HA_”开头)=>返回id 831的对象 if(articleId以“ XE_”开头)=>返回ID为833的对象 现在我得到一个错误 jav
如何对同一嵌套下的多个字段执行“必须”“匹配”查询?这是一个可复制的ES索引,其中“用户”字段定义为“嵌套”类型。 这里有2份文件: 对于这个索引,如何查询“John”和“Alice”都存在的文档?使用上面定义的索引,我希望得到的是文档1,而不是文档2。到目前为止,我已经尝试了以下代码,但没有收到任何结果:
最近我开始研究GraphQL,我能够在平面模式中插入数据,没有任何问题,但是当涉及到数据数组时,我会遇到如下错误 我正在用postman测试我的查询,我的变异查询是 这是我的事件模式: 猫鼬模式: 突变类型:
和相应的查询解析器 这里的主要想法只是有一个过滤器,可以看到什么食谱有一些成分,用户会通过应用程序通知。 我使用数据库中的所有食谱获得了“recipe”查询,但我需要一个获取这些食谱的查询,然后使用field comprient进行筛选,例如: 食谱-糖蛋糕,配料:糖、蜂蜜、四个… 配方-天鹅绒蛋糕,配料:糖、香草、... 并且用户通知Sugar,API应该返回这2个食谱,但是如果用户通知Suga