đź”® Sanity Create is here. Writing is reinvented. Try now, no developer setup

Delete documents by filter

By Knut Melvær

Migration script for deleting documents based on a GROQ filter


This schema is for an older version of Sanity Studio (v2), which is deprecated.

Learn how to migrate to the new Studio v3 →


 * To use this script:
 * 1. Put this script in your studio-folder
 * 2. Write a GROQ filter that outputs the documents you want to delete
 * 3. Run `sanity dataset export` to backup your dataset before deleting a bunch of documents
 * 4. Run `sanity exec deleteDocsByFilter.js --with-user-token` to delete the documents
 * NOTE: For the time being you should not delete more than ~1000 documents in one transaction. This will change in the future.
 * See docs:https://www.sanity.io/docs/http-api/http-mutations#deleting-multiple-documents-by-query

import client from 'part:@sanity/base/client'

  .delete({query: '*[_type == "aDocumentType"][0...999]'})

This script lets you delete documents based on a GROQ filter. It can be run in a studio folder using sanity exec deleteDocsByFilter.js --with-user-token. Note that this script deletes data, and it can be wise to test your query and export your dataset before running this.


Other schemas by author