Database

[{"supplier":[{"name":"supplier 1","products":[{"name":"product 1"},{"name":"product 2"}]},{"name":"supplier 1","products":[{"name":"product 3"}]},{"name":"supplier 2","products":[{"name":"product 3"}]},]}]

Query

db.collection.aggregate([{$unwind:"$supplier"},{$group:{_id:"$supplier.name",products:{$push:"$supplier.products"}}},{$project:{_id:0,name:"$_id",products:{$reduce:{input:"$products",initialValue:[],in:{$concatArrays:["$$this","$$value"]}}}}}])

Result