努力过滤Gatsby GraphQL查询中的Drupal数据

时间:2020-04-16 14:57:04

标签: drupal graphql gatsby

我正在使用Drupal 8 JSON:API将数据公开给我的Gatsby网站。我建立了一个GraphQL查询,以显示“官员”列表,其中包含与一组“服务期”相关的字段。 API返回的数据是正确的,但是我只想过滤一个特定的子记录(服务期),并且不知道该怎么做。我的查询是:

  officerList: allGroupContentLodgeGroupNodeOfficer(filter: {relationships: {entity_id: {relationships: {field_position: {elemMatch: {relationships: {field_service_period: {drupal_internal__tid: {eq: 203}}}}}}}}}) {
    edges {
      node {
        r: relationships {
          entity_id {
            r: relationships {
              field_position {
                r: relationships {
                  field_position {
                    name
                  }
                  field_service_period {
                    name
                    drupal_internal__tid
                  }
                }
              }
            }
            title
          }
        }
      }
    }
  }
}

生成的JSON集为:

  "data": {
    "officerList": {
      "edges": [
        {
          "node": {
            "r": {
              "entity_id": {
                "r": {
                  "field_position": [
                    {
                      "r": {
                        "field_position": {
                          "name": "Governor"
                        },
                        "field_service_period": {
                          "name": "2018 - 2019",
                          "drupal_internal__tid": 203
                        }
                      }
                    },
                    {
                      "r": {
                        "field_position": {
                          "name": "Junior Past Governor"
                        },
                        "field_service_period": {
                          "name": "2019 - 2020",
                          "drupal_internal__tid": 204
                        }
                      }
                    }
                  ]
                },
                "title": "Tom Jones"
              }
            }
          }
        }
      ]
    }
  }
}

我知道结果集是正确的,因为孩子在根内。但是,我看不到如何过滤完整查询以仅包括某些子记录。这有可能吗?我已经看到了GraphQL的某些实现,这些实现似乎允许将过滤器放置在子对象上,但是我认为在盖茨比中这是不可能的。

我到处都在寻找可能的解决方案,并且几天来一直在脑海中撞。非常感谢任何见识!

TIA!

0 个答案:

没有答案