MongoDB - Aggregation - To get unique items in array
mongodb, mongodb-query, php-mongodb
Solution
After few more tries, I had solved this. Here's the commands:
db.xyz.aggregate( {$project: {a: '$products.item'}},
{$unwind: '$a'},
{$unwind: '$a'},
{$group: {_id: 'a', items: {$addToSet: '$a'}}});
and
db.xyz.aggregate( {$project: {category: 1, a: '$products.item'}},
{$unwind: '$a'},
{$unwind: '$a'},
{$group: {_id: '$category', items: {$addToSet: '$a'}}});
Problem
Here's my MongoDB collection: ``` { "_id" : ObjectId("515d8f53175b8ecb053425c2"), "category" : "Batteries", "products" : [ { "brand" : "Duracell", "item" : [ "AA", "AAA" ] }, { "brand" : "Everyday", "item" : [ "9V", "AA", "12V" ] } ] } ``` The output that I need is 1) Unique list of all items ``` {["AA", "AAA", "9V", "12V"]} ``` and 2. unique list of items per product ``` { "category" : "Batteries", "item": ["AA", "AAA", "9V", "12V"] } ``` I'm very new to MongoDB, and I tried different aggregations functions and nothing seems to work. Please help.