πŸ‘€ See Sanity in action: Watch product demo now β†’

Fetching posts by slug (using GROQ) will return two versions, the published one and the new draft. Is there a way to tell them apart?

6 replies
Last updated: Nov 26, 2020
If i've got a published post, and I edit it. Fetching posts by slug (using GROQ) will return two versions, the published one and the new draft. Other than the fact that the IDs for drafts have a prefix of
drafts.
is there a way to tell them apart? Essentially I want to make sure the live page doesn't return any draft versions. This is all happening in my GraphQL server with a private dataset, so all my sanity client queries have a token.
Nov 26, 2020, 5:25 PM
ah, looks like the prefix method is the trick:
!(_id in path("drafts.**"))
from the GROQ docs
Nov 26, 2020, 5:37 PM
smoother handling of drafts in on the backlog (this filter works but is a bit verbose for a relatively common task)
Nov 26, 2020, 6:02 PM
can there ever be multiple drafts for a given entity?
Nov 26, 2020, 6:03 PM
not at the moment, that is, I guess you sort of have it in the revision history
Nov 26, 2020, 6:04 PM
i'm just pondering whether I can put my entire site into preview mode and avoid weird duplicates
Nov 26, 2020, 6:05 PM
which I suppose would also mean favouring the draft version when there are two records with the same slug
Nov 26, 2020, 6:06 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