如何根据前题对GraphQL查询进行排序

时间:2019-02-22 10:37:16

标签: graphql gatsby

我是GraphQL的新手,并且已经使用allMarkDownRemark查询成功地对数据进行了排序,但是我需要的是能够对我们进行allFile查询,然后仍然按{ {1}},这可能吗?

这是查询(已删除排序)返回正确的数据。

frontmatter

当我使用上面的排序方式运行它时,会引发以下错误

{
    allFile(
      limit: 3
      sort: { fields: [frontmatter___priority], order: DESC }
      filter: { sourceInstanceName: { eq: "key-points" } }
    ) {
      edges {
        node {
          id
          childMarkdownRemark {
            frontmatter {
              title
              content
              priority
            }
          }
        }
      }
    }
  }

首先,有没有一种方法可以使用 { "errors": [ { "message": "Expected type FileConnectionSortByFieldsEnum, found frontmatter___priority.", "locations": [ { "line": 4, "column": 28 } ] } ] } 进行查询,然后通过AllFile进行排序?

如果没有,是否可以使用带有frontmatter字段的降价信息来过滤特定文件夹?

1 个答案:

答案 0 :(得分:1)

  

首先,有没有一种方法可以使用AllFile进行查询,然后通过Frontmatter进行排序?

没有gatsby-source-filesystem的更改,这是不可能的。您应该使用FileConnectionSortByFieldsEnum值之一。有FileConnectionSortByFieldsEnum个值:

  • id
  • 孩子
  • 父母
  • internal ___ contentDigest
  • internal ___ type
  • internal ___ mediaType
  • internal ___ description
  • internal ___ owner
  • sourceInstanceName
  • absolutePath
  • relativePath
  • 扩展名
  • 大小
  • prettySize
  • modifiedTime
  • accessTime
  • changeTime
  • birthTime
  • root
  • dir
  • 基地
  • ext
  • 名称
  • relativeDirectory
  • dev
  • 模式
  • nlink
  • uid
  • gid
  • rdev
  • blksize
  • ino
  • atimeMs
  • mtimeMs
  • ctimeMs
  • birthtimeMs
  • 一次
  • mtime
  • ctime
  • 出生时间
  • publicURL
  

如果没有,是否可以使用带有路径字段的降价信息过滤特定文件夹?

将查询更改为使用allMarkdownRemark,它将为您提供帮助。