GROQ Query - Can you Join an Array of Strings into a Single Output String?

7 replies
Last updated: Jul 27, 2022
Hi all, does anyone know of a way in groq to join an array of strings into a single output string? Sorry if I've missed something obvious!
This query produces an array of strings, but I would like "sectors" to produce a string with a single comma separated list. Thanks as always for the help.

*[_type == "technologyProduct"]{
   "sectors": targetIndustries[]->title,
}
Jul 24, 2022, 10:42 AM
Pretty sure it’s not possible.
Jul 24, 2022, 10:53 AM
Thanks Kitty- good to know- I'll work around it!
Jul 24, 2022, 11:43 AM
Maybe these 2 links can help you, but I don’t think you can do so, unless you flatten the array in your front end with
array.toString()
.

https://www.sanity.io/docs/high-performance-groq
https://www.sanity.io/docs/query-cheat-sheet#4ff061cc51e4
Jul 26, 2022, 5:02 PM
Or
array.join(', ')
. 🙂
Jul 27, 2022, 7:36 AM
I think you could also set a patch even with a custom document action and get your array of strings (or however you want it to be saved) patched into another field.
Jul 27, 2022, 10:55 AM
Thanks all. I can work around it on the front end, but I was hoping to shape the data in the query and avoid the need to create another component. Not a major headache!
Jul 27, 2022, 3:43 PM
you don’t need a new component… that’s a quick function you could use for setting the data into a component.
Jul 27, 2022, 4:55 PM

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