$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_expressionsobjectrequired

Two 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

Related