如何按字符串中的数字对graphql查询进行排序?

如何按字符串中的数字对graphql查询进行排序?,graphql,gatsby,graphql-js,gatsby-image,Graphql,Gatsby,Graphql Js,Gatsby Image,我正在制作一个照片库/灯箱,并使用graphql管理图片 我的文件夹中有10张照片: 1-Picture.png,2-Picture of other thing.png,3-…,…,10-My last Picture.png 我使用下面的代码片段按升序排序 export const query=graphql` 查询$gallery:String!{ 所有文件 过滤器:{ sourceInstanceName:{eq:galleries} 绝对路径:{glob:$gallery} } 排序:

我正在制作一个照片库/灯箱,并使用graphql管理图片

我的文件夹中有10张照片: 1-Picture.png,2-Picture of other thing.png,3-…,…,10-My last Picture.png

我使用下面的代码片段按升序排序

export const query=graphql` 查询$gallery:String!{ 所有文件 过滤器:{ sourceInstanceName:{eq:galleries} 绝对路径:{glob:$gallery} } 排序:{字段:名称,顺序:ASC} { 节点{ 名称 childImageSharp{ fluidmaxWidth:1920,质量:90{ …盖茨比磁流体 } } } } } ` 但是输出顺序是1-Picture.png,10-My last Picture.png,2-Picture of other thing.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之前。

重命名文件可能有意义。@ksav我开始倾向于这种方式。我觉得这应该是可控的——我认为我想做的事情背后的逻辑是合理的。当然任何事情都是可能的。但正如您所说,找到一种批量重命名所有文件并在文件名中填充前导0的方法会更容易。