是否可以查询内容类型中的所有条目并根据子字段过滤响应?

时间:2017-09-13 09:35:42

标签: graphql contentful gatsby

我正在使用Contentful,我有两种内容类型:AlbumArtist

Album有一个“艺术家”字段,引用Artist内容类型的条目,我想执行一个返回Artist和所有Albums的查询引用Artist

我有类似的东西,但我不知道如何过滤专辑:

query artistQuery($id: String!) {
  contentfulArtist(id: { eq: $id }) {
    id
    artistName
  }
  allContentfulAlbum {
    edges {
      node {
        artist {
          id
          artistName
        }
      }
    }
  }
}

2 个答案:

答案 0 :(得分:1)

你试试这个查询吗?

query artistQuery{
  contentfulArtist{
    id
    artistName
  }
   album {
    id
    artistName
  }
}

我有一个与作者和文章类似的用例。我用类似的查询解决了。 见截图。 enter image description here

答案 1 :(得分:0)

根据@ khaled的answer,您似乎可以查询引用另一个条目的内容类型中的所有条目,只需将第一个条目作为子字段查询。

所以在我的情况下,要从Albums查询所有Artist,查询是这样的:

query artistQuery($id: String!) {
  contentfulArtist(id: { eq: $id }) {
    id
    artistName
    album {
      id
      title
    }
  }
}