For at efterligne funktionaliteten af $addToSet-opdateringsoperatøren med $hver modifikator i aggregeringspipeline kan du bruge en kombination af $push på grupperingsstadiet og $reduce + $setUnion på projektionsstadiet. F.eks.:
db.collection.aggregate([
{$group:{
_id: null,
selectedTags: { $push: '$tags' }
}},
{$project: {
selectedTags: { $reduce: {
input: "$selectedTags",
initialValue: [],
in: {$setUnion : ["$$value", "$$this"]}
}}
}}
])
resultater med et enkelt dokument, som indeholder en særskilt liste over tags fra alle dokumenter i selectedTags
array.