$setIntersection
Returns an array containing elements that exist in all input arrays, performing set intersection operation to find common elements.
Syntax
{ $setIntersection: [<array_expression1>, <array_expression2>, ...] }
Parameters
array_expressions
objectrequiredTwo or more array expressions to find common elements between
Examples
Find common elements
Get elements that exist in both arrays
Query:
db.products.aggregate([{ $project: { commonTags: { $setIntersection: ["$productTags", "$categoryTags"] } } }])
Output:
Documents with commonTags containing tags found in both arrays
Multiple array intersection
Find elements common to multiple arrays
Query:
db.analysis.aggregate([{ $project: { sharedFeatures: { $setIntersection: ["$featuresA", "$featuresB", "$featuresC"] } } }])
Output:
Documents with sharedFeatures containing elements present in all three arrays
User permission intersection
Find permissions that exist in both required and available sets
Query:
db.users.aggregate([{ $project: { grantedPermissions: { $setIntersection: ["$requestedPermissions", "$availablePermissions"] } } }])
Output:
Documents with grantedPermissions showing overlap between requested and available