Query an Array - Last 10 Elements of an Array

7 replies
Last updated: Jul 11, 2022
Hi,I'm trying to query an array but I want the last 10 elements of that array. Is it possible to do this one one query? This is what I'm trying to do and I get an error:

  *[_type == "archives"] {
    title,
    slug,
    links[(count(links) - 10))...count(links))]
  }
In this case
links
is an array.
Jul 10, 2022, 2:38 PM
oh I think that might have been an old screenshot when I was playing around with it
Jul 10, 2022, 3:13 PM
this is the error I get
Jul 10, 2022, 3:14 PM
lmao I thought I was going crazy, looked up a bracket validator
Jul 10, 2022, 3:18 PM
Unfortunately it's not possible to do calculations in a slice. For use cases like pagination we currently recommend managing your state and slices on your front end.
Jul 10, 2022, 3:59 PM
Unfortunate but thanks for the response.
Jul 10, 2022, 4:11 PM
You should be able to use negative slicing:
links[-11..-1]
. Negative offsets count from the end, with -1 being the last element.
I'm not in front a computer right now, but I
believe this works correctly if the array is less than 10 elements, i.e. the slice start is clamped to the range [0, length-1].
Jul 10, 2022, 5:54 PM
Oh thank you. I think for my use case, it works out well.
Jul 11, 2022, 3:02 AM

Sanity.io – build remarkable experiences at scale

Sanity is a customizable solution that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.

Categorized in