$setIsSubset
Returns true if all elements of the first array are contained in the second array, performing subset validation regardless of element order.
Syntax
{ $setIsSubset: [<array_expression1>, <array_expression2>] }
Parameters
array_expression1
objectrequiredThe array expression to check as potential subset
array_expression2
objectrequiredThe array expression to check as potential superset
Examples
Check subset relationship
Verify if first array is completely contained in second array
Query:
db.products.aggregate([{ $project: { isValidSubset: { $setIsSubset: ["$selectedFeatures", "$availableFeatures"] } } }])
Output:
Documents with isValidSubset boolean indicating subset relationship
Validate user permissions
Check if user's requested permissions are subset of available permissions
Query:
db.users.aggregate([{ $project: { permissionsValid: { $setIsSubset: ["$requestedPermissions", "$availablePermissions"] } } }])
Output:
Documents with permissionsValid showing if requested permissions are allowed