आपको $unwind
. का उपयोग करके इसे हासिल करने में सक्षम होना चाहिए और $group
आपके एकत्रीकरण पाइपलाइन में। यह पहले प्रत्येक विशेषता को एक दस्तावेज़ में समतल करता है और उन पर आप विशेषता मान द्वारा समूहित कर सकते हैं।
अंत में, आप $project
. का उपयोग कर सकते हैं attributeValue
. के लिए वांछित नाम प्राप्त करने के लिए :
db.collection.aggregate([
{
$unwind: "$attributeSet"
},
{
$group: {
_id: "$attributeSet.value",
data: {
"$addToSet": {
productId: "$productId"
}
}
}
},
{
"$project": {
_id: 0,
data: 1,
attributeValue: "$_id"
}
}
])
मोंगोप्लेग्राउंड पर यह सरलीकृत उदाहरण देखें:https://mongoplayground.net/p/VASadZnDedc