Musisz $unwind
tablica "rozmiary", a następnie $group
według "elementu" i "rozmiarów" i użyj $sum
aby zwrócić liczbę.
db.collection.aggregate(
[
{ "$unwind": "$sizes" },
{ "$group": {
"_id": {
"item": "$item",
"sizes": "$sizes"
},
"count": { "$sum": 1 }
}}
]
)
co daje:
{ "_id" : { "item" : "EFG", "sizes" : "S" }, "count" : 1 }
{ "_id" : { "item" : "ABC", "sizes" : "L" }, "count" : 1 }
{ "_id" : { "item" : "ABC", "sizes" : "M" }, "count" : 2 }
{ "_id" : { "item" : "ABC", "sizes" : "S" }, "count" : 1 }