为什么可以';在graphql中过滤深层嵌套查询吗?

为什么可以';在graphql中过滤深层嵌套查询吗?,graphql,hasura,Graphql,Hasura,所以我最近才开始使用graphql(确切地说是上周)。我得到了能够使用“where”参数和所有参数过滤查询的概念,但我注意到,当我尝试从深度嵌套查询中获取对象时,它变得有些不可能。因此,假设我有一个“家庭工作者”查询,该查询应获得全名、手机号码1和关系,其中“存档”为null等于true,如下所示: domestic_workers_nextofkin(where: {archived:{_is_null: true}}){ full_name mobile_phone1

所以我最近才开始使用graphql(确切地说是上周)。我得到了能够使用“where”参数和所有参数过滤查询的概念,但我注意到,当我尝试从深度嵌套查询中获取对象时,它变得有些不可能。因此,假设我有一个“家庭工作者”查询,该查询应获得全名、手机号码1和关系,其中“存档”为null等于true,如下所示:

domestic_workers_nextofkin(where: {archived:{_is_null: true}}){
    full_name
    mobile_phone1
    domestic_workers_relationships{
      relationship
    }
  }
}
上面的查询执行预期的任务,并获取全名、手机1和关系

但我当前的问题是,当此查询如下图所示(带星号的代码)被深度嵌套时:

它显示了突出显示为红色的“where”参数,这可能意味着不应该将“where”参数放在那里,这对我来说相当混乱。有人能解释一下为什么会发生这种情况,并告诉我一个解决办法来完成我试图执行的任务吗?谢谢。

发件人:

where参数可以在数组关系中使用,也可以用于过滤嵌套对象对象关系只有一个嵌套对象,因此它们不公开where参数


users\u user
是一个对象关系(它返回一个对象而不是它们的数组),因此无法对其进行筛选。

非常感谢您的解释。但是从你对graphql的了解来看,你会建议我在这个问题上做些什么呢?好的,我刚刚读了文档,我明白了你的意思。但在我的例子中,实际上是家政工人nextofkin返回一个对象。谢谢。
query User($userId: Int) {
     domestic_workers_news{
          title
          date_created
          summary
          url
        }
    users_user(where: {id: {_eq: $userId}}) {
      domestic_workers_pictures(order_by: {id: desc}, limit: 1) {
        id
      }
      id
      password
      username
      first_name
      last_name
      email
      gender
      birth_date
      mobile_phone1
      mobile_phone2
      home_address_street
      home_address_town
      home_address_lga
      home_address_state
      home_address_country
      home_address_postal_code
      job_title
      workplace
      verified
      agreed_terms
      date_joined
      last_modified
      domestic_workers_workers {
        domestic_workers_pictures(order_by: {id: desc}, limit: 1) {
          id
        }
        id
        first_name
        last_name
        other_name
        email
        mobile_phone1
        mobile_phone2
        home_town
        home_state
        service
        birth_date
        gender
        date_created
        current_employer_id
        domestic_workers_relationships{
          id
          payment
          payment_currency
          start_date
          relationship
          domestic_workers_agent {
            full_name
            mobile_phone1
            domestic_workers_relationships{
              relationship
            }
            domestic_workers_pictures(order_by: {id: desc}, limit: 1) {
              id
            }
          }


**domestic_workers_nextofkin (where: {archived:{_is_null: true}}) {
        full_name
        mobile_phone1
         domestic_workers_relationships{
          relationship
        }
      }
    }**
        domestic_workers_reviews {
          id
          score
          summary
          date_created
          users_user {
            first_name
            last_name
            domestic_workers_pictures(order_by: {id: desc}, limit: 1) {
              id
            }
          }
        }
        employerRelationships: domestic_workers_relationships(order_by: {id: desc}, limit: 1, where: {relationship: {_eq: "Employer"}}) {
         end_date
         relationship
        }
      }
    }
   }