Sanity CMS 自定义排序

Sanity CMS custom sorting

我不知道是否存在某种方法可以按自定义字段对结果进行排序。 我的查询:

 *[_type == "movies" && actors]
{
   ..., 
   isHarryMovie: name match "Harry*" 
}

所以我想按 isHarry 对结果进行排序,是否可行?

我试过这样的事情:

 *[_type == "movies" && actors] | order(isHarryMovie asc)
{
   ..., 
   isHarryMovie: name == "Harry" 
}

 *[_type == "movies" && actors] | order("isHarryMovie" asc)
{
   ..., 
   isHarryMovie: name == "Harry" 
}

但他们没有用

投影后即可下单:

*[_type == "movies"] {
  ..., 
  isHarryMovie: name match "Harry*" 
} | order(isHarryMovie desc)

这将按您添加到每个文档的 isHarryMovie 属性排序。

但是这种查询会强制加载所有电影,然后过滤,然后排序——速度不会很快。您最好按分数排序:

*[_type == "movies"] | score(name match "Harry*") | order(_score desc)

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