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

The array expression to check as potential subset

array_expression2objectrequired

The 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

Order validation

Check if ordered items are subset of inventory items

Query:

db.orders.aggregate([{ $project: { itemsAvailable: { $setIsSubset: ["$orderedItems", "$inventoryItems"] } } }])

Output:

Documents with itemsAvailable indicating if all ordered items are in inventory

Related