How AI is powering better personalization in e-commerce [with Vercel]. Sign up now

sanity-groq-filter

Studio v2
This plugin only works with an older version of Sanity Studio (v2), which is deprecated.

Curated List of GROQ Filters.

By Hans

v2 install command (deprecated)

npm install sanity-groq-filter

Sanity GROQ Filter

Curated List of GROQ Filters.

Usage / Examples

Removes all references which are already present in the parent and returns only the unused references.

unusedReferences-Filter

import GroqFilter from "sanity-groq-filter"

export default {
    name: 'documentName',
    type: 'document',
    fields: [
        {
            name: 'fieldName',
            type: 'array',
            of: [
                {
                    type: 'reference',
                    to: { type: 'someReferencedType' },
                    options: { filter: GroqFilter.unusedReferences }
                }
            ],
            validation: Rule => Rule.unique()
        },
    ]
}

matches-Filter

Filters to include only documents with ${fieldName} containing the ${matchStr}.

import GroqFilter from "sanity-groq-filter"

export default {
    name: 'documentName',
    type: 'document',
    fields: [
        {
            name: 'fieldName',
            type: 'array',
            of: [
                {
                    type: 'reference',
                    to: { type: 'someReferencedType' },
                    options: { filter: GroqFilter.matches('myField', 'barbeque') }
                }
            ],
            validation: Rule => Rule.unique()
        },
    ]
}

excludes-Filter

Filters to exclude documents with ${fieldName} containing the ${matchStr}.

import GroqFilter from "sanity-groq-filter"
//...
                    options: { filter: GroqFilter.excludes('myField', 'barbeque') }
//...

Further Reading

Sanity documentation on filters