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*"
的任何电影分配高分,并为其他所有电影分配低分。
我不知道是否存在某种方法可以按自定义字段对结果进行排序。 我的查询:
*[_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*"
的任何电影分配高分,并为其他所有电影分配低分。