Hey! I decided to try and use GROQ in my svelte project and have hit a roadblock. I don’t understand how to correctly query for an unknown referenced document. I’m successfully...

4 replies
Last updated: May 13, 2020

Hey! I decided to try and use GROQ in my svelte project and have hit a roadblock. I don’t understand how to correctly query for an unknown referenced document.
I’m successfully querying blocks that use references (->) but I’m trying to do the same for a mark / link. If I console log the link currently it is only fetching

{_key: "452dec4de1a3", _ref: "29e3b314-6983-46ce-8c3e-1d968ab74d22", _type: "linkInternal"}

May 12, 2020, 7:09 PM

Oh and my query:

* [_type == "post"
&& route.slug.current == $post_slug
&& taxonomy.category->.route.slug.current == $category_slug
][0]{
...,
richcontent[]{
		...,

		_type == 'embedBook' => {
			...,
			book->
		},
		_type == 'embedPattern' => {
			...,
			pattern->
		},
		_type == 'embedPost' => {
			...,
			post->
		},
		_type == 'embedProfile' => {
			...,
			list[]->
		}
	}
}

May 12, 2020, 7:11 PM

I believe it might be

* [_type == "post"
&& route.slug.current == $post_slug
&& taxonomy.category->.route.slug.current == $category_slug
][0]{
...,
richcontent[]{
		...,
		markDefs[]{
		  _type == "linkInternal" => @->
		},
		_type == 'embedBook' => {
			...,
			book->
		},
		_type == 'embedPattern' => {
			...,
			pattern->
		},
		_type == 'embedPost' => {
			...,
			post->
		},
		_type == 'embedProfile' => {
			...,
			list[]->
		}
	}
}
As per this example
https://github.com/sanity-io/sanity-recipes/blob/master/examples/links-in-portabletext/joinInternalLink.groq

May 12, 2020, 9:42 PM

I believe it might be

* [_type == "post"
&& route.slug.current == $post_slug
&& taxonomy.category->.route.slug.current == $category_slug
][0]{
...,
richcontent[]{
		...,
		markDefs[]{
		  _type == "linkInternal" => @->
		},
		_type == 'embedBook' => {
			...,
			book->
		},
		_type == 'embedPattern' => {
			...,
			pattern->
		},
		_type == 'embedPost' => {
			...,
			post->
		},
		_type == 'embedProfile' => {
			...,
			list[]->
		}
	}
}
As per this example
https://github.com/sanity-io/sanity-recipes/blob/master/examples/links-in-portabletext/joinInternalLink.groq

May 12, 2020, 9:42 PM

Thank you! After a bit of tweaking I think I got it working. This helped.

May 13, 2020, 12:53 AM

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.

Categorized in

Related topics

Get more help in the community Slack

Go to I'm having a hard time doing a client side query, tried using the HTTP API but the URI encoding for '&&' and '->' seemed to be causing problems so I tried importing the js client to the browser but its pretty confusing to get set up with Sapper. Anyone solved either of these approaches?
TopicCategoriesFeaturedRepliesLast Updated
I'm having a hard time doing a client side query, tried using the HTTP API but the URI encoding for '&&' and '->'...6Jun 8, 2020

Related contributions

Prediabetes Guide
- Made with Sanity

Important information about prediabetes and how to improve it.

Matthew Gibbons
Go to Prediabetes Guide

Fusepilot
- Made with Sanity

Fusepilot is a collection of creative work and digital products by Michael Delaney.

Michael Delaney
Go to Fusepilot