> db.example.insert([
{
_id: "product1",
avgReview: 4.3,
price: 21,
category: "TVs",
title: "Sony 42 inch HDTV",
attributes: [
{name: "type", value: "HD"},
{name: "screen size", value: 42},
{name: "manufacturer", value: "Sony"},
...
]
}
...
])
> db.example.aggregate([
{$match: {category: "TVs"}}, {$facet: {
"Screen Sizes": [
{$unwind: "$attributes"},
{$match: {"attributes.name": "screen size"}},
{$group: {
_id: { },
count: {$sum: 1}
}}
],
"Manufacturer": [
{$match: {"attributes.name": "manufacturer"}},
{$group: {_id: "$attributes.value", count: {$sum: 1}}},
{$sort: {count: -1}}
{$limit: 5}
]
}}
])
{
"Screen Size": [
{_id: {min: MinKey, max: 32}, count: 32},
{_id: {min: 32, max: 42}, count: 32},
{_id: {min: 42, max: 50}, count: 33},
{_id: {min: 50, max: MaxKey}, count: 33}
],
"Manufacturer": [
{_id: "Sony", count: 54},
{_id: "Samsung", count: 45},
{_id: "LG", count: 34},
{_id: "Sharp", count: 22},
{_id: "Vizio", count: 14},
]
}