我需要基于猫鼬聚合$ project中相同键值,使用给定的数组对象将所有数组对象和嵌套对象分组。
需要对所有具有相同键值的标题进行分组,还需要根据适当的密钥对嵌套对象进行分组。关键值可能是动态值,例如“颜色,大小,重量,高度,内存,存储空间等”。
{ $group: {
_id: null,
"dynamicFilter": { "$push": '$product' },
}},
$project: { _id: 0,
autoFilter: {
$filter: {
input: '$dynamicFilter',
as: 'filterData',
cond: {
}
}
}
}}
“ $ dynamicFilter”具有一些数组对象字符串,该字符串对象是从集合中获取的
_id:ObjectId("5d2f8835d5027d4a5f9b535a")
product:"[{"title":"COLOR","attribute":[{"label":"Red","isDefaul..."}{"label":"black","isDefaul..."}]}]"
_id:ObjectId("5d2f8835d5027d4a5sdf7654")
product:"[{"title":"RAM","attribute":[{"label":"8GB","isDefaul..."}]}]"
“标题”键值可以是动态的,例如“颜色,大小,重量,高度,内存,存储空间等。”
{
"autoFilter": [
{
"title": "Color",
"attribute": [
{
"label": "Gold"
},
{
"label": "rose"
},
{
"label": "black"
},
{
"label": "blue"
}
]
},
{
"title": "RAM",
"attribute": [
{
"label": "4GB"
},
{
"label": "3GB"
},
{
"label": "8GB"
}
]
},
{
"title": "Stroage",
"attribute": [
{
"label": "32GB"
},
{
"label": "64GB"
}
]
},
{
"title": "size",
"attribute": [
{
"label": "5inch"
},
{
"label": "6inch"
}
]
}
]
}