Simeon Griggs
Customer Education at Sanity
Not all Unpublished Documents are created equal
{
"unpublishedAll": *[_id in path("drafts.**")],
"unpublishedNew": *[_id in path("drafts.**") && count(*[^._id == "drafts." + _id]) == 0],
"unpublishedModified": *[count(*[_id in [^._id, "drafts." + ^._id]]) > 1]
}Draft / Unpublished Documents can be queried by looking for any Document which has an _id that begins with drafts. but determining if the Document has ever been Published before requires more work.
An existing, previously published Document with unpublished changes will exist as two Documents that can be returned by an authenticated query, their _id's look something like:
asdf-1234drafts.asdf-1234However, a new Document that has never been published will only exist with an _id that begins with drafts.
When this snippet is run, the number of results in unpublishedAll should equal the sum of the results in unpublishedNew and unpublishedModified.
Note: These example queries are not optimised and are intended for use cases like document lists for your Dashboard.
The three query keys explained:
unpublishedAll will return all Documents with an _id beginning with drafts.unpublishedNew does the same search but only returns Documents for which it can also find Published _id's.unpublishedModified finds as many Documents where both a published and draft _id for the same document exist.Customer Education at Sanity
Runs Support @ Sanity.io
Automatically format code blocks using Prettier to enforce consistency across all documents.
Go to Format code blocks with PrettierGet instant Telegram notifications when new comments are posted, with direct links to your Sanity Studio.
Go to Telegram alerts for new commentsPrevent references to large files to reduce the chances of high bandwidth usage
Go to Schema validation rules to enforce maximum file sizeThis snippet can be used to fetch current, previous and next articles based on publication date and related tags.
Go to Get current, previous and next post, filtered by tags