我正在使用gatsby-source-contentful
,其中我有一个名为ContentfulBlogPost
的类型,其架构如下所示:
{
id
title
body
date
}
Date是一个字符串(格式为YYYY-MM-DD
),由Gatsby的数据层自动神奇地处理为Moment对象;我可以打电话给fromNow
和formatString
以及所有这些。
我想要的是使用GraphQL根据该日期字段查询给定年份的帖子列表。
如果我这样做:
{
allContentfulBlogPost(
filter: { date: { regex: "/^2017/" } }
) {
...
}
}
然后我收到此错误:"Cannot read property 'fromNow' of undefined"
我真正想要的是能够按日期过滤allContentfulBlogPost
数据集,方法是将日期转换为整数/字符串年份并查找,或者通过询问对于日期在给定年份的1月1日至12月31日之间的所有项目。
现在,我在gatsby-node
中运行了一个查询,其中包含所有博客帖子,然后在JS中按年份对它们进行分组,然后将帖子数组传递到模板中。这有效,但看起来应该有一种GraphQL方式吗?