Database

db={"products":[{"_id":{"$oid":"5ecf269bceb735416db0b329"},"id":36,"title":"Product 1","description":{"generalInformation":"Some information","activeIngredients":[{"_id":1636,"qty":133.5,"measure":"µg","subIngredient":[{"_id":1626,"qty":16.6,"measure":"µg"}],},{"_id":1234,"qty":133.5,"measure":"µg","subIngredient":[{"_id":1122,"qty":16.6,"measure":"µg"},{"_id":1212,"qty":16.6,"measure":"µg"}],},]},},{"_id":{"$oid":"5ecf269bceb735416db0b346"},"id":36,"title":"Product 2","description":{"generalInformation":"Some information","activeIngredients":[{"_id":1234,"qty":133.5,"measure":"µg","subIngredient":[{"_id":1122,"qty":16.6,"measure":"µg"}],},{"_id":1234,"qty":133.5,"measure":"µg","subIngredient":[{"_id":1122,"qty":16.6,"measure":"µg"},{"_id":1212,"qty":16.6,"measure":"µg"}],},]},}],"ingredients":[{"_id":1234,"name":"Ingredient 1",},{"_id":1122,"name":"Ingredient 2",},{"_id":1212,"name":"Ingredient 3",},{"_id":1636,"name":"Ingredient 4",},{"_id":1626,"name":"Ingredient 5",}]}

Query

db.products.aggregate([{"$unwind":{"path":"$description.activeIngredients","preserveNullAndEmptyArrays":false}},{"$lookup":{"from":"ingredients","localField":"description.activeIngredients._id","foreignField":"_id","as":"description.activeIngredients.name"}},{"$addFields":{"description.activeIngredients.name":{"$arrayElemAt":["$description.activeIngredients.name.name",0]}}},{"$lookup":{"from":"ingredients","let":{sub:"$description.activeIngredients.subIngredient"},"pipeline":[{$match:{$expr:{"$setIsSubset":[["$_id"],{$map:{input:"$$sub",as:"datum",in:"$$datum._id"}}]}}}],"as":"subIngredients"}},{"$addFields":{"description.activeIngredients.subIngredient":{$map:{input:"$description.activeIngredients.subIngredient",as:"sub",in:{"$mergeObjects":["$$sub",{name:{$arrayElemAt:["$subIngredients.name",{"$indexOfArray":["$subIngredients._id","$$sub._id"]}]}}]}}}}},{"$group":{"_id":"$_id","ingredients":{"$push":"$description.activeIngredients"},"description":{"$first":"$description"},"title":{"$first":"$title"}}}])

Result