GraphQLize更新(#3)-逻辑运算符和按嵌套对象过滤

2020-05-06 07:20:03

GraphQLize的第三次迭代按计划进行得很好,GraphQLize中的过滤器刚刚变得更好:)。

让我们来看看GraphQLize有哪些新功能,接下来两周将会有哪些功能。

或者在语法上与和相似。它既接受单个条件,也接受条件列表。

在上一次迭代期间添加的另一个主要功能是基于嵌套对象的字段过滤结果对象。

例如,要获取使用上述架构中的国家名称的国家的所有城市,我们可以将其查询为。

如果嵌套对象与其父对象具有一对多关系,则如果至少有一个嵌套对象的字段满足条件,则筛选条件会产生结果。

对于上面的模式,我们可以使用下面的查询获得至少有一个城市以Ab开头的国家/地区列表。

基于具有多对多关系的嵌套对象的筛选器与一对多关系的筛选器的行为相同。

对于上面的方案,让演员参与至少一部片名中有“生活”这个词的电影。

要过滤至少有一门课程评分为5的作者,我们可以使用以下查询来实现。

如果我们只想过滤所有课程得分为5的作者,我们可以通过以下方式来实现。

我们在这里使用SQL反连接,使用NOT反转整个条件,并使用其反转(neq代替eq)补充内部条件。

GraphQLize提供了一个特殊的过滤器参数,可以基于子对象的存在进行过滤。例如,在上面的架构中,如果我们希望只过滤有课程的作者,可以使用以下查询来实现。

假设,如果我们要过滤没有课程的作者,我们可以在过滤器中使用NOT和HAVE。

GraphQLize的下一次迭代的重点是添加对SQL聚合函数的支持。