对另一个结果执行 GraphQL 查询

Executing GraphQL queries on the result of another one

我正在尝试获取 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
      }
    }
  }
}

另外,查询正常,我可以得到很好的结果。

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

知道怎么做吗?

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

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