尝试使用DatoCMS和Gatsby JS按位置对graphQL顺序进行排序

时间:2020-01-05 19:03:22

标签: javascript reactjs graphql content-management-system gatsby

我正在使用这个Gatsby JS插件来探索DatoCMS GraphQL API https://github.com/datocms/gatsby-source-datocms,在dato文档中它说您可以按位置在cms https://www.datocms.com/docs/content-delivery-api/ordering/中排序

我基本上想保留cms中的顺序,而不是基于日期的顺序。

在dato API资源管理器中,我可以按位置对帖子进行排序。

query MyQuery {
  allProjects(orderBy: position_ASC) {
    slug
  }
}

但是在同一个查询中,盖茨比却暗示我在下面尝试过类似的操作,但是它给了我error Expected type SortOrderEnum, found position_ASC

query MyQuery {
  allDatoCmsProject(sort: {order: position_ASC}) {
    edges {
      node {
        slug
      }
    }
  }
}

在gatsby插件中,语法略有不同。DatoCMS graphQL Explorer。这就是如果我想按特定字段对它进行订购,该插件希望我进行订购的方式。但是我找不到任何可以按元素在Dato cms中的位置进行排序的字段

{
  allDatoCmsBlogPost(sort: { fields: [publicationDate], order: DESC }, limit: 5) {
    edges {
      node {
        title
        excerpt
        publicationDate(formatString: "MM-DD-YYYY")
        author {
          name
          avatar {
            url
          }
        }
      }
    }
  }
}

1 个答案:

答案 0 :(得分:1)

当模型具有表的“可视化模式”时,将添加名为position的属性。

Records collection visualization mode "Tabular view"

我们可以使用此position对记录进行排序,如下所示:

allDatoCmsProject(sort: { fields: [position], order: ASC }){
...
}