MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

selecione 2 campos e retorne um array ordenado com seus valores distintos


Você precisa $group nossos documentos e use o $push operador acumulador para retornar uma matriz de "a" e "b" dentro da coleção.

No $project operador você usa o $setUnion operador para filtrar as duplicatas.
db.coll.aggregate(
    [
        { "$group": { 
            "_id": null, 
            "a": { "$push": "$a" }, 
            "b": { "$push": "$b" } 
        }}, 
        { "$project": {
            "_id": 0, 
            "merged": { "$setUnion": [ "$a", "$b" ] } 
        }} 
    ]
)

que produz:
{ "merged" : [ 3, 2, 0, 1 ] }