如何在 Gatsby GraphQL 中过滤子数组?

Posted

技术标签:

【中文标题】如何在 Gatsby GraphQL 中过滤子数组?【英文标题】:How can I filter child arrays in Gatsby GraphQL? 【发布时间】:2021-02-09 15:27:28 【问题描述】:

这让我得到showOnSite === true的所有事件:

query MyQuery 
  allSanityP2Event(filter: showOnSite: eq: true) 
    edges 
      node 
        showOnSite
        title
        relatedEvents 
          showOnSite
          title
        
      
    
  

然后我想在这些结果中过滤relatedEvents,也可以过滤showOnSite === true。 GraphQL 肯定可以做到这一点吗?

使用elemMatch 不起作用,因为它只给我relatedEvents 具有showOnSite === true 的事件,如下所示:

query MyQuery 
  allSanityP2Event(filter: showOnSite: eq: true, relatedEvents: elemMatch: showOnSite: eq: true) 
    edges 
      node 
        showOnSite
        title
        relatedEvents 
          showOnSite
          title
        
      
    
  

从逻辑上讲,我希望这会起作用,但没有......

query MyQuery 
  allSanityP2Event(filter: showOnSite: eq: true) 
    edges 
      node 
        showOnSite
        title
        relatedEvents(filter: showOnSite: eq: true) 
          showOnSite
          title
        
      
    
  

【问题讨论】:

【参考方案1】:

嗯,这就是解决的问题。原来是理智的错。

【讨论】:

以上是关于如何在 Gatsby GraphQL 中过滤子数组?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 reactjs 和 graphql 在 gatsby 中映射嵌套数组

Gatsby - 如何使用 GraphQL 查询 src/data/ 子文件夹中的所有 YAML

gatsby 和 graphql :过滤特定的单个图像

在 Gatsby 的 graphQL 查询中使用 begin With 或 startsWith 过滤器

[Gatsby][GraphQL]:从另一个查询中检索过滤器参数后运行查询

在 Gatsby 和 GraphQL 中的 wordpress 中过滤 ACF Post Object-field