
Grab your gear: The official Sanity swag store
Read Grab your gear: The official Sanity swag storeYes, absolutely! You can check if two arrays have any overlapping strings using the in operator combined with count() in GROQ. Here's how:
count(['hello', 'world'] @ in ['hello', 'sanity']) > 0This would return true because 'hello' appears in both arrays.
The @ symbol in GROQ represents "each element" in the array. The expression array1 @ in array2 iterates through each element of array1 and checks if it exists in array2, returning an array of matching elements. Then count() tells you how many matches were found.
Breaking it down:
['hello', 'world'] @ - iterates through each element ('hello', then 'world')@ in ['hello', 'sanity'] - checks if the current element exists in the second arraycount(...) - counts how many elements matched> 0 - returns true if there's at least one matchThis is especially useful when filtering documents. For example, if you have posts with tags and want to find posts that have any tags matching a specific list:
*[_type == 'post' && count(tags[] @ in $selectedTags) > 0]Or checking if two reference arrays have any overlap:
*[_type == 'article' && count(authors[]._ref @ in $authorIds) > 0]If you want to check that all elements from one array exist in another (not just any), you can compare the count to the array length:
count(['hello', 'world'] @ in ['hello', 'world', 'sanity']) == 2The count() function works perfectly with the in operator for these kinds of array intersection checks. This pattern of count(array1 @ in array2) > 0 is a common and efficient way to check for array overlap in GROQ queries, and it's particularly powerful when used in filter components to narrow down your document results based on array intersections.
Sanity is the developer-first content operating system that gives you complete control. Schema-as-code, GROQ queries, and real-time APIs mean no more workarounds or waiting for deployments. Free to start, scale as you grow.
Content operations
Content backend


The only platform powering content operations
By Industry


Tecovas strengthens their customer connections
Build and Share

Grab your gear: The official Sanity swag store
Read Grab your gear: The official Sanity swag store