Is there any way to $lookup with embed array of document?

I am trying to work something out with $filter and $map but I cannot ignore the fact that this schema looks very relational, and require you to join multiple collections to get one set of results.

Why don’t you store the size, color objects with the needed information embeded in the product ? This will make you life much easier and will give you the benifits of using MongoDB. (I hope its not due to restrications you caused yourself using Mongoose…)