Как агрегировать и добавлять значения в Mongo DB?

#node.js #mongodb #mongodb-query #aggregation-framework

#node.js #mongodb #mongodb-запрос #агрегация-фреймворк

Вопрос:

У меня есть ниже набор данных, где нужно сгруппировать по полю A и добавить уникальные значения в существующее или новое поле. Пробовал addtoset без какого-либо успеха. Любая помощь здесь очень ценится

Набор данных

 A    B      C
xyz  green  blah
xyz  amber  other blah
xyz  red    asdasda
cdd  green  asdasdad 

Expected

A B
xyz,[green,amber,red]
cdd,green


.aggregate([
{"$unwind": "$RAG" }, 
{$group : {_id : {A:"$A",B:"$B"}}},testRag: { $addToSet: "$B" }]).toArray(function(err, output)
 

Ответ №1:

Попробуйте это:

 db.testCollection.aggregate([
    {
        $group: {
            _id: "$A",
            "B": {
                $addToSet: "$B"
            }
        }
    },
    {
        $project: {
            "_id": 0,
            "A": "$_id",
            "B": "$B"
        }
    }
]);
 

Вывод:

 /* 1 */
{
    "A" : "cdd",
    "B" : [
        "green"
    ]
},

/* 2 */
{
    "A" : "xyz",
    "B" : [
        "green",
        "amber",
        "red"
    ]
}