我有类别代码和类别名称与组和其他字段组与数组。样本数据——
[
{
"categoryCode":"categoryCode1",
"categoryName":"categoryName1",
"cat_type":A
},
{
"categoryCode":"categoryCode1",
"categoryName":"categoryName1",
"cat_type":B
},
{
"categoryCode":"categoryCode2",
"categoryName":"categoryName2",
"cat_type":B
}
]
和期望输出:
[
{
"categoryCode":"categoryCode1",
"categoryName":"categoryName1",
"cat_type":[A,B]
},
{
"categoryCode":"categoryCode2",
"categoryName":"categoryName2",
"cat_type":[B]
}
]
如何用不同的值实现这一点。
使用$group
聚合阶段和$addToSet
运算符。
db.collection.aggregate([
{
"$group": {
"_id": {
"categoryCode": "$categoryCode",
"categoryName": "$categoryName",
},
"cat_type": {
"$addToSet": "$cat_type"
}
},
},
{
"$project": {
"_id": 0,
"categoryCode": "$_id.categoryCode",
"categoryName": "$_id.categoryName",
"cat_type": "$cat_type"
}
},
])
Mongo Playground Sample Execution