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