Apollo GraphQL查询使用其他查询覆盖子元素数组

时间:2018-05-08 08:34:51

标签: graphql react-apollo apollo-client

我有两个查询来获取公司的类别类型。 员工查询包括数据库中公司查询类型的一部分类型。 如果我只查询员工查询,则employee types数组包含2个元素。 如果我只查询公司查询,公司类型数组包含4个元素。 好.. 但是,如果我同时查询两者,那么员工的类型数组会更新,并突然包含4个元素而不是2个元素。

query GetEmployee ($id: ID!) {
employee (id: $id) {
  id,
  companyTaskCategories{
      id,
      title,
      color,
      archived,
      types(restrictEmployee: true)  {
        id,
        title,
        archived,
      }
  }
}


query company {
company {
  id,
  taskCategories {
    id,
    title,
    color,
    archived,
    types(restrictEmployee: false) {
      id,
      title,
      archived,
    }
  }
}

}

1 个答案:

答案 0 :(得分:0)

不确定您是如何实现解析器功能的,但如果您想运行两个查询并获得隔离结果,请使用突变,因为它可以确保您的查询不会在后端创建竞争条件。

所以请使用突变来顺序获取数据。

http://graphql.org/learn/queries/

中所述
  

虽然查询字段是并行执行的,但突变字段会在其中运行   系列,一个接一个。