如何过滤graphQL一对多关系中的查询?

Posted

技术标签:

【中文标题】如何过滤graphQL一对多关系中的查询?【英文标题】:How to filter query in graphQL one to many relation? 【发布时间】:2020-08-02 19:07:30 【问题描述】:

我有两张桌子tirebrand。他们有一对多的关系。 所以当我尝试以下查询时

  getTireListing (sortBy: "title") 

    edges 
      node 
        title
        description1
        description2

        brand  
          ... on object_brand 
            brandName
          
        

      
    
    totalCount
  

我得到以下结果。


  "data": 
    "getTireListing": 
      "edges": [
        
          "node": 
            "title": "Continental-ContieCocontact 5",
            "description1": "<p>test</p>\n",
            "description2": "<p>test 2</p>\n",
            "brand": 
              "brandName": "Continental"
            
          
        ,
        
          "node": 
            "title": "PremiumContact TM 6",
            "description1": "<p>test</p>\n",
            "description2": "<p>test</p>\n",
            "brand": 
              "brandName": "Continental"
            
          
        ,
        
          "node": 
            "title": "Tire name",
            "description1": "<p>fgafd</p>\n",
            "description2": "<p>asfasdf</p>\n",
            "brand": 
              "brandName": "Abc Brand"
            
          
        
      ],
      "totalCount": 3
    
  

现在我需要用品牌名称过滤轮胎,所以我尝试了

getTireListing (
 sortBy: "title",
 filter: "\"brand\" :  \"brandName\": \"Continental\"  "
) 

但我收到错误Column not found: 1054 Unknown column 'brandName' in 'where clause'

我是 GraphQL 的新手。有人可以帮忙吗?

【问题讨论】:

在 Playground 或输入类型定义中探索可能的 filter 属性 @xadm 我从昨天开始尝试过。我现在有点迷路了。这就是寻求帮助的原因。 只需在/graphiql 游乐场探索“文档”,您应该会找到每种类型/对象/表的可用查询和可能的参数(输入类型) 你能编辑你的问题并将代码添加到getTireListing的解析器函数吗? @Blackbam 我创建了一张票。 github.com/pimcore/data-hub/issues/224 【参考方案1】:

你可以试试下面的代码:

filter : "\"brandName\": \"$like\" :\"%Continental%\""

【讨论】:

以上是关于如何过滤graphQL一对多关系中的查询?的主要内容,如果未能解决你的问题,请参考以下文章

具有三层深度嵌套模型的查询集过滤器(多个一对多关系)

graphql/graphcool:如何编写一个连接一对一和一对多关系的突变

如何使用 GraphQL 创建一对多关系?

在 appsync graphql 中过滤一对多精确数据

GraphQL/Graph.cool 查询过滤嵌套关系

在 GraphQL 中过滤嵌套关系