Pour imiter la fonctionnalité de l'opérateur de mise à jour $addToSet avec $each modificateur dans le pipeline d'agrégation, vous pouvez utiliser une combinaison de $push à l'étape de regroupement et de $reduce + $setUnion à l'étape de projection. Ex. :
db.collection.aggregate([
{$group:{
_id: null,
selectedTags: { $push: '$tags' }
}},
{$project: {
selectedTags: { $reduce: {
input: "$selectedTags",
initialValue: [],
in: {$setUnion : ["$$value", "$$this"]}
}}
}}
])
résultats avec un seul document qui contient une liste distincte de balises de tous les documents dans selectedTags
déployer.