如何解决Gatsby / GraphQL如何按数字而不是按字母顺序对整数字段排序?
我正在建立一个Gatsby网站(v2.24.47),从那里我从CSV文件中提取数据以及书中有关页面的信息。这是使用gatsby-transformer-csv
加载的,并且我使用自定义架构来确保将列page_num
转换为Int
类型的字段。但是好像Gatsby正在按字母顺序 而不是数值对字段进行排序。例如,如果我查询第12页之后的所有页面,则它包括第8页和第9页,实际上,仅对页面进行排序也会按字母顺序返回它们。我需要对页面进行数字排序。有办法吗?
任何帮助将不胜感激。我在下面提供了一个最小的示例。
gatsby-config.js
module.exports = {
plugins: [
{
resolve: `gatsby-source-filesystem`,options: {
path: `${__dirname}/data/`,}
},`gatsby-transformer-csv`
],}
gatsby-node.js
exports.createSchemaCustomization = ({ actions,schema }) => {
const { createTypes } = actions
createTypes(`
type PagesCsv implements Node @dontInfer {
page_num: Int
}
`)
}
data / pages.csv
page_num
8
9
10
11
12
13
14
GraphQL查询(在GraphiQL中)
query MyQuery {
allPagesCsv(filter: {page_num: {gt: 12}}) {
nodes {
page_num
}
}
}
返回
{
"data": {
"allPagesCsv": {
"nodes": [
{
"page_num": 8
},{
"page_num": 9
},{
"page_num": 13
},{
"page_num": 14
}
]
}
},"extensions": {}
}
类似地,查询allPagesCsv(sort: {fields: page_num})
将以字母顺序10、11、12、13、14、8、9返回页面。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。