Write a GROQ query for getting all documents that has an ID in an array of IDs

4 replies
Last updated: Nov 28, 2020

I'm trying to write a GROQ query for getting all documents that has an ID in an array of IDs
I.e. - I have a list of IDs called

favorites
, which look like
['asdf', '1234', 'abcd']
. Each of these are document IDs.
How do I write a GROQ query that only gets the documents with IDs in that list?

Nov 27, 2020, 8:48 PM

Believe it’s

*[_id in [['asdf', '1234', 'abcd']]

Nov 27, 2020, 8:57 PM

How would that work if the list is provided to the groq utility as a query parameter?

Nov 28, 2020, 11:33 AM

With the javascript client it would be something like this:

client.fetch(
  '*[_id in $ids]',
  {ids: ['a', 'b', 'c']}
)

Nov 28, 2020, 2:40 PM

Thanks! ✌️

Nov 28, 2020, 2:43 PM

Sanity.io: Get the most out of your content

Sanity.io is a platform to build websites and applications. It comes with great APIs that let you treat content like data. Give your team exactly what they need to edit and publish their content with the customizable Sanity Studio. Get real-time collaboration out of the box. Sanity.io comes with a hosted datastore for JSON documents, query languages like GROQ and GraphQL, CDNs, on-demand asset transformations, presentation agnostic rich text, plugins, and much more.

Don't compromise on developer experience. Join thousands of developers and trusted companies and power your content with Sanity.io. Free to get started, pay-as-you-go on all plans.