如何使用参数/参数在Gats中查询Graphql?

时间:2020-07-31 00:05:39

标签: jquery json graphql gatsby

我正在尝试将参数传递给读取我的json文件的查询,我已经阅读了很多教程和文档,但是也许我因为缺少用而错过了一些东西。

这是代码

query MyQuery {
  allInternacionalJson {
    edges {
      node {
        regiones(id: 1) {
          id
          region
        }
      }
    }
  }
}

但是结果如下

{
  "data": {
    "allInternacionalJson": {
      "edges": [
        {
          "node": {
            "regiones": [
              {
                "id": 1,
                "region": "América del Norte"
              },
              {
                "id": 2,
                "region": "América Latina y el Caribe"
              },
              {
                "id": 3,
                "region": "Europa"
              },
              {
                "id": 4,
                "region": "Asia Pacífico"
              },
              {
                "id": 5,
                "region": "Medio Oriente y África"
              }
            ]
          }
        }
      ]
    }
  }
}

我在线查看了“ where”搜索不再可用,并且顶部的过滤器仅适用于过滤节点。

使用该ID,我要尝试仅获取具有该ID的对象。

1 个答案:

答案 0 :(得分:0)

过滤器必须放在查询的顶层,在您的情况下为allInternacionalJson

query MyQuery {
  allInternacionalJson(filter: {regions: {id: {eq: "1"}}}) {
    edges {
      node {
        regiones {
          id
          region
        }
      }
    }
  }
}

注意:如果不需要将id用于其他用途,则可以查询。无需查询参数即可进行过滤。

基本上,您必须深入每个嵌套对象才能找到参数(id)并应用过滤规则eq(等于)。

您可以通过在localhost:8000/___graphql游乐场中单击来生成和过滤查询,以进行播放和过滤。

看看GraphQL reference by Gatsby (filter section)