Tengo 3 documentos:
{ "id": 1, "user": "Brian1", "configs": [ "a", "b", "c", "d" ] } ---- { "id": 2, "user": "max_en", "configs": [ "a", "h", "i", "j" ] } ---- ---- { "id": 3, "user": "userX", "configs": [ "t", "u", "s", "b" ] }Quiero fusionar todas las matrices de "configuraciones" en una matriz sin duplicados, así:
{ "configs": [ "a", "b", "c", "d", "h", "i", "j", "t", "u", "s", ] }He intentado lo siguiente:
Aggregation.group("").addToSet("configs").as("configs") y { _id: "", 'configs': { $addToSet: '$configs' } }
El primero da error porque he dejado el nombre del campo vacío (no sé qué poner ahí).
El segundo devuelve una matriz fusionada pero con duplicados.
Cuando desee agrupar todos los documentos, debe agregar {_id: null}
Significa agrupar todos los documentos.
Probablemente necesites esto
db.collection.aggregate([ { "$unwind": "$configs" }, { $group: { _id: null, configs: { "$addToSet": "$configs" } } } ])Pero tenga cuidado cuando necesite usar una colección más grande sin una coincidencia.