Go Behind the Experience to see how Tecovas brings the West to life with Sanity 🤠 July 18th

Querying arrays of objects and relationships in Groq

17 replies
Last updated: Apr 10, 2023
Hey everyone!Could anyone guide me on how I could do a groq query for an array of objects?

I want images to return an array of images with just their url…
groq`*[_type == "art"]{
      "category": category.title,
      "slug": slug.current,
      "featureImage": featureImage.asset->url,
Apr 7, 2023, 9:37 PM
Apr 7, 2023, 10:17 PM
You need to iterate over the array
, dereference the asset
, then access the url:
'images': images[].asset->url
Apr 10, 2023, 8:09 PM
Thanks for that!
Apr 10, 2023, 8:10 PM
I should have noted I solved that with this just for reference in the future:
'images': images[] {
   "url": image.asset->url
Apr 10, 2023, 8:11 PM
Apr 10, 2023, 8:11 PM
In a similar issue, I am having trouble figuring out how to query a relationship
Apr 10, 2023, 8:11 PM
I have an array of a document type, artSeries. But I can’t figure out how to grab the information I need for the artSeries
    _createdAt: '2023-04-10T19:34:13Z',
    _id: 'homepageImages',
    _rev: 'QNM76uqvKuoc4uTWDKb5RR',
    _type: 'homepageImages',
    _updatedAt: '2023-04-10T19:35:32Z',
    artSeries: [ [Object] ],
    title: 'Homepage Images'
So far I have tried doing something like the following:

groq`*[_type == "homepageImages" ]{
      "artSeries": artSeries[] {
        not sure what I might do here haha

Apr 10, 2023, 8:13 PM
What information are you trying to grab?
Apr 10, 2023, 8:22 PM
I need to get an array of artSeries documents that is referenced in the homepageImages
Apr 10, 2023, 8:23 PM
Right now the only info I get about each artSeries is this:
Apr 10, 2023, 8:24 PM
I just can’t figure out how to use the _ref to make another query for the artSeries with the same _id associated to it
Apr 10, 2023, 8:24 PM
Ah, you don’t need to use a named field in this case. Something like this should work:
*[_type == "homepageImages" ]{
        //add projection here or remove the brackets if you want all of the fields.
Apr 10, 2023, 8:51 PM
Oh great! That was much easier than I was making it
Apr 10, 2023, 8:54 PM
And sorry just one other thing. Is there a way to order the artSeries by _createdAt?
Apr 10, 2023, 9:01 PM
Yeah try:
*[_type == "homepageImages" ]{
      artSeries[]-> | order(_createdAt asc)
Apr 10, 2023, 9:12 PM
Thank you!
Apr 10, 2023, 9:12 PM
You’re welcome!
Apr 10, 2023, 9:14 PM

Sanity– build remarkable experiences at scale

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

Was this answer helpful?