【问题标题】:Is it possible to query all entries from a content type and filter the response based on a subfield?是否可以从内容类型中查询所有条目并根据子字段过滤响应?
【发布时间】:2018-02-21 22:51:01
【问题描述】:

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

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

我有这样的东西,但我不知道如何过滤相册:

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

【问题讨论】:

  • 你用的是什么graphql服务器?
  • 我正在使用 Contentul,我正在从 Gatsby 生成的网站获取数据。

标签: graphql contentful gatsby


【解决方案1】:

你试试这个查询吗?

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

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

【讨论】:

  • 谢谢,@khaled,与您发布的屏幕截图中的查询类似的查询正是我想要的。
  • 很高兴它有帮助,您能否将我的答案标记为正确,这将对以后的问题有所帮助。
【解决方案2】:

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

所以在我的例子中,要从Artist 中查询所有Albums,查询是这样的:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-09
    • 2019-10-17
    • 2011-03-06
    • 1970-01-01
    相关资源
    最近更新 更多