Untuk meniru fungsionalitas operator pembaruan $addToSet dengan $each modifier dalam saluran agregasi, Anda dapat menggunakan kombinasi $push pada tahap pengelompokan dan $reduce + $setUnion pada tahap proyeksi. Mis.:
db.collection.aggregate([
{$group:{
_id: null,
selectedTags: { $push: '$tags' }
}},
{$project: {
selectedTags: { $reduce: {
input: "$selectedTags",
initialValue: [],
in: {$setUnion : ["$$value", "$$this"]}
}}
}}
])
hasil dengan satu dokumen yang berisi daftar tag yang berbeda dari semua dokumen di selectedTags
Himpunan.