如何在 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 中过滤子数组?的主要内容,如果未能解决你的问题,请参考以下文章