graphql - 如何按字符串中的数字对graphql查询进行排序?
问题描述
我正在制作照片库/灯箱,并正在使用 graphql 来管理图片。
我在一个文件夹中有 10 张照片:“1- 图片.png”、“2- 其他东西的图片.png”、“3-...”、...、“10- 我的最后一张图片.png”
我正在使用以下代码段按升序排序,
export const query = graphql`
query($gallery: String!) {
allFile(
filter: {
sourceInstanceName: { eq: "galleries" }
absolutePath: { glob: $gallery }
}
sort: { fields: name, order: ASC }
) {
nodes {
name
childImageSharp {
fluid(maxWidth:1920, quality:90) {
...GatsbyImageSharpFluid
}
}
}
}
}
`
但输出顺序是“1- 图片.png”、“10- 我的最后一张图片.png”、“2- 其他东西的图片.png”、...
有没有一种智能的方法可以按字符串开头的数字进行排序?我能想到的最简单的方法是将 1-9 文件重命名为“01-...png”,但我正在尝试对包含 5-150 张照片的数千个文件夹实施此操作,所有这些都使用“1-”命名惯例。
如何对这些照片进行排序,以使“9- Some name.png”列在“10- My last picture.png”之前?
解决方案
我遇到了同样的问题,从技术上讲,11 在 2 之前,因为排序是按字母顺序排列的,而 1 在 2 之前。排序是基于第一个字符,然后是后面的字符,如果它在排序中需要它的话。
解决方案是重命名1-9
为01-09
0 在 1 之前的方式。
推荐阅读
- flutter - 如何从颤动的小部件中使用的所有下拉字段中获取值?
- node.js - 如果存在子文档,则在其下添加对象
- java - 在 Spring Boot 中以什么顺序读取 application.yml?
- mongodb - mongodb 的 shell 日志记录
- android - 无法对齐父级底部的按钮
- python-3.x - 如何将 FieldFile 复制到不同的模型?
- javascript - 从元素的最后一次出现中收集特定属性
- npm - 我无法将 import sass 安装到我的项目中
- android - 使用 Play 应用签名时如何为 Android 应用获取 SHA-1 和 SHA-256 指纹?
- sql - PostgreSQL 行级安全性涉及与其他表的外键