在查询里面可以定义 Fragments,碎片,然后在其它地方可以重复使用定义的这些碎片。比如这个查询,需要 id 号是 1 还有 2 的用户。
下面我们可以把 user 里的这些字段放在一个碎片里面。定义一个碎片,用一下 fragment ,后面是碎片的名字,比如 userWithPosts ,再用 on 设置一下属于的类型,这里是 User。 然后把查询里的 user 里面的这些字段,放在定义的这个 fragment 里面。
这样在查询的时候,我们就可以直接使用定义的这个 fragment,去掉这个 user 里的这些字段,换成 ... 后面是碎片的名字,userWithPosts。这个 ... 有点像是 JavaScript 里的 spread 操作符。
执行一下这个查询,返回的结果跟之前的查询是一样的。假设我现在需要在结果里面包含内容项目的 id 号,可以直接修改这个 userWithPosts 碎片。在 posts 里面,添加一个 id 字段。再执行一下。
这次返回的结果里面,用户相关的内容列表项目里面,会包含内容的 id 字段的值。