GraphQL过滤/排序DatoCMS GatsbyJS

时间:2020-06-18 06:22:58

标签: graphql gatsby

我有以下GraphQL查询:

export const query = graphql`
  query NewsQuery($slug: String!) {
    datoCmsNews(slug: { eq: $slug }) {
      id
      title
      description
      slug
      meta {
        publishedAt
      }
      cover {
        fluid(maxHeight: 530) {
          ...GatsbyDatoCmsSizes
        }
      }
    }
    allDatoCmsNews(sort: { fields: [meta___publishedAt], order: DESC }, limit: 4) {
      edges {
        node {
          id
          title
          slug
          meta {
            publishedAt
            isValid
            status
          }
          cover {
            fluid(maxHeight: 375) {
              ...GatsbyDatoCmsSizes
            }
          }
        }
      }
    }
  }
`; 

在我的allDatoCmsNews查询中,如何对$slug等于当前子弹的新闻项进行排序/过滤?如果当前正在查看新闻,我不想显示新闻。我猜我将不得不使用neq来解决正确的语法。

谢谢

1 个答案:

答案 0 :(得分:0)

使用filter相当简单:

allDatoCmsNews(sort: { fields: [meta___publishedAt], order: DESC }, limit: 4, filter: {slug: {ne: $slug}})