【问题标题】:Executing GraphQL queries on the result of another one对另一个结果执行 GraphQL 查询
【发布时间】:2018-04-29 01:24:33
【问题描述】:

我正在尝试获取 Gatsby 中的文件夹名称列表,以及其中的文件名称。

这是我可以使用的 2 个查询:

query fetchDirectories {
  allDirectory(filter: {
    relativeDirectory: {
      regex: "/documentation/"
    }
  }) {
    edges {
      node {
        name
      }
    }
  }
}

query fetchFilesByDirectory($directory: String) {
  allFile(filter: {
    internal: {
      mediaType: {
        eq: "text/markdown"
      }
    }
    relativePath: {
      regex: $directory
    }
  }) {
    edges {
      node {
        name
      }
    }
  }
}

另外,查询是有效的,我可以得到很好的结果。

在我的代码中,我想对第一个查询返回的每个目录执行第二个查询。

你知道怎么做吗?

【问题讨论】:

  • 如果您找到答案,可以告诉我吗?我对完全相同的用例有完全相同的查询。

标签: graphql gatsby


【解决方案1】:

根据您的用例,如果您只是想获取 /documentation/ 中的所有 MD 文件,这可能会有用

{
  allFile(filter: {
    internal: {
      mediaType: {
        eq: "text/markdown"
      }
    }
    relativeDirectory: {
      regex: "/documentation/"
    }
  }) {
    edges {
      node {
        relativePath
        name
      }
    }
  }
}

【讨论】:

  • 嗨@alvin - 感谢您的回复。挑战在于它不是一个目录,它有很多,并且需要在构建时获取。例如,我可以在下次构建 gatsby 时添加一个新目录,所以它现在应该开始考虑这一点。
猜你喜欢
  • 2010-10-31
  • 2023-02-07
  • 2018-09-12
  • 2018-10-17
  • 1970-01-01
  • 2019-04-18
  • 2017-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多