首页 > 解决方案 > prismic - 如何根据长度或 NOT NULL 进行 qgl 选择

问题描述

由于 prismic 没有必填字段的概念,我们最终可能会得到 null 而不是 data。

我正在寻找一种在 gatsby 应用程序中提取棱镜数据的方法,过滤掉不需要的实体。

SQL 理念

SELECT *
FROM allPrismicAnnouncement
WHERE quote IS NOT NULL;

我使用的实际 gql

export const query = graphql`
query AnnouncementCardQuery {
 allPrismicAnnouncement(sort: {order: DESC, fields: data___date}) {
  edges {
   node {
   uid
    id
     data {
      quote {
        text
       }
      subtitle1 {
     text
     }
    }
   }
  }
 }
}
`

如何使用过滤器包含或类似的方法来过滤掉没有引用的文章。选项 2 - 忽略长度小于 100 个字符的所有引号

标签: graphqlgqlprismic.io

解决方案


这个问题在棱镜社区论坛上有答案

是的,您可以使用 ne运算符;用Prismic fields过滤响应。

我正在使用allPrismicBlogpost并且有类似的查询和问题。我认为这样的事情对你有用(将排序更改为first_publication_date)。

export const query = graphql`
query AnnouncementCardQuery {
 allPrismicAnnouncement(filter: {data: {quote: {text: {ne: null}}}}, sort: { order: DESC, fields: first_publication_date}) {
  edges {
   node {
   uid
    id
     data {
      quote {
        text
       }
      subtitle1 {
     text
     }
    }
   }
  }
 }
}
`

推荐阅读