Om de functionaliteit van de $addToSet update-operator na te bootsen met $each modifier in de aggregatiepijplijn, kun je een combinatie gebruiken van $push in de groeperingsfase en $reduce + $setUnion in de projectiefase. Bijv.:
db.collection.aggregate([
{$group:{
_id: null,
selectedTags: { $push: '$tags' }
}},
{$project: {
selectedTags: { $reduce: {
input: "$selectedTags",
initialValue: [],
in: {$setUnion : ["$$value", "$$this"]}
}}
}}
])
resultaten met een enkel document dat een duidelijke lijst met tags bevat van alle documenten in selectedTags
reeks.