Chcete-li napodobit funkci operátora aktualizace $addToSet s modifikátorem $each v agregačním kanálu, můžete použít kombinaci $push na seskupovací fázi a $reduce + $setUnion na projekční fázi. Např.:
db.collection.aggregate([
{$group:{
_id: null,
selectedTags: { $push: '$tags' }
}},
{$project: {
selectedTags: { $reduce: {
input: "$selectedTags",
initialValue: [],
in: {$setUnion : ["$$value", "$$this"]}
}}
}}
])
výsledky s jedním dokumentem, který obsahuje odlišný seznam značek ze všech dokumentů v selectedTags
pole.