#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"
]
}