Graphql - 根据出版年份分组剧集
Posted
技术标签:
【中文标题】Graphql - 根据出版年份分组剧集【英文标题】:Graphql - Group episodes based on the year published 【发布时间】:2021-11-24 04:53:43 【问题描述】:我有一个 json 文件,其中包含一组剧集,每个剧集都有一个键 publishedAt
,格式为 YYYY-MM-DD。我需要根据出版年份对剧集进行分组。我该如何为此编写查询?我有这个,但是这个分组是根据完整的发布日期而不是年份来分组的。
allEpisodesJson
group(field: publishedAt)
fieldValue
totalCount
【问题讨论】:
在您的(许多)其他问题中提供反馈,而不是每天创建一个新问题... 【参考方案1】:你不能直接这样做,因为你的publishedAt
包含完整的日期,所以你需要通过创建一个新节点来格式化它(你不能同时分组和格式化,因为该字段带有错误的格式):
exports.onCreateNode = ( node, actions ) =>
const createNodeField = actions
if (node.internal.type === "Json" && node.publishedAt)
const date = new Date(node.publishedAt)
const year = date.getFullYear()
createNodeField( node, name: "year", value: year )
注意:检查您的节点内部类型。我假设是Json
,但请检查它以确保条件正在被验证。
上面的 sn-p 位于您的 gatsby-node.js
中,基本上,您正在根据来自 publishedAt
字段的值生成一个新字段 (year
)。
然后,在您的group
中,您将能够:
allEpisodesJson
group(field: year)
fieldValue
totalCount
注意 2:检查 GraphiQL 操场 (localhost:8000/___graphql
) 中的查询以确保该字段存在同名
【讨论】:
以上是关于Graphql - 根据出版年份分组剧集的主要内容,如果未能解决你的问题,请参考以下文章