首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sanity CMS自定义排序

Sanity CMS自定义排序
EN

Stack Overflow用户
提问于 2022-04-11 14:35:08
回答 1查看 307关注 0票数 0

我不知道是否存在按自定义字段对结果进行排序的方法。我的问题是:

代码语言:javascript
复制
 *[_type == "movies" && actors]
{
   ..., 
   isHarryMovie: name match "Harry*" 
}

所以我想用isHarry对结果进行排序,结果是肯定的吗?

我试过这样的方法:

代码语言:javascript
复制
 *[_type == "movies" && actors] | order(isHarryMovie asc)
{
   ..., 
   isHarryMovie: name == "Harry" 
}

代码语言:javascript
复制
 *[_type == "movies" && actors] | order("isHarryMovie" asc)
{
   ..., 
   isHarryMovie: name == "Harry" 
}

但他们没有工作

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-11 14:51:24

您可以在投影后订购:

代码语言:javascript
复制
*[_type == "movies"] {
  ..., 
  isHarryMovie: name match "Harry*" 
} | order(isHarryMovie desc)

这将根据添加到每个文档中的isHarryMovie属性进行排序。

但这种查询将被迫加载所有电影,然后过滤,然后排序-它不会很快。你最好按分数分类:

代码语言:javascript
复制
*[_type == "movies"] | score(name match "Harry*") | order(_score desc)

这将为任何带有name match "Harry*"的电影分配一个高分,并为其他所有影片分配一个较低的分数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71829699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档