GraphQL 过滤数组

时间:2021-05-10 23:12:41

标签: graphql graphiql

我正在使用 GatsBy GraphiQL 编写查询以返回单个元素,但该查询返回所有元素。 这是我的测试数据:

    {
      "data": {
        "mKT": {
          "data": [
            {
              "name": "Apple",
              "description": "apple's desc"
            },
            {
              "name": "Orange",
              "description": "orange's desc"
            },
            {
              "name": "Banana",
              "description": "banana's desc"
            }
          ]
        }
      },
      "extensions": {}
    }

而且,这是 GraphQL 查询:

    query MyQuery {
      mKT(data: {elemMatch: {name: {eq: "Apple"}}}) {
        data {
          name
          description
        }
      }
    }

我希望得到:

    {
     "name": "Apple",
     "description": "apple's desc"
    }

但是,运行查询会返回所有数据。 知道如何解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

简单使用:

connectionString

query MyQuery { mKT(data: {filter: {name: {eq: "Apple"}}}) { data { name description } } } 关键字应该可以解决问题。

查看 GraphQL Reference (in Gatsby docs) 了解更多详情。

答案 1 :(得分:0)

我相信这与以下情况相同:

GraphQL query to access first item in an array?

如果结构未在源中定义,则不能对其使用过滤器、限制等。

如果您有权访问源,请在字段数据中添加类似 limit 的内容。

如果没有,你会得到完整的数组,你必须自己处理。