首页 > 解决方案 > GraphQL 过滤数组

问题描述

我正在使用 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"
    }

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

标签: graphqlgraphiql

解决方案


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

GraphQL查询访问数组中的第一项?

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

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

如果没有,您将获得完整的数组,并且您必须自己处理它。


推荐阅读