$setUnion

Returns an array containing all distinct elements from the input arrays, performing set union operation to combine arrays without duplicates.

Syntax

{ $setUnion: [<array_expression1>, <array_expression2>, ...] }

Parameters

array_expressionsobjectrequired

Two or more array expressions to combine into union set

Examples

Combine arrays

Create union of two arrays with distinct elements

Query:

db.products.aggregate([{ $project: { allTags: { $setUnion: ["$productTags", "$categoryTags"] } } }])

Output:

Documents with allTags containing distinct elements from both tag arrays

Multiple array union

Combine multiple arrays into single distinct set

Query:

db.analysis.aggregate([{ $project: { combinedFeatures: { $setUnion: ["$featuresA", "$featuresB", "$featuresC"] } } }])

Output:

Documents with combinedFeatures containing all distinct elements from three arrays

Merge user permissions

Combine different permission sets into comprehensive list

Query:

db.users.aggregate([{ $project: { totalPermissions: { $setUnion: ["$rolePermissions", "$additionalPermissions"] } } }])

Output:

Documents with totalPermissions containing all distinct permissions from both sources

Related