Database
[{"user_id":1,"product_type":"product-1"},{"user_id":1,"product_type":"product-4"},{"user_id":1,"product_type":"product-4"},{"user_id":2,"product_type":"product-1"}]
Query
db.collection.aggregate([{$group:{_id:"$user_id",data:{$push:"$product_type"}}},{$match:{$expr:{$or:[{$in:["product-1","$data"]},{$in:["product-2","$data"]}]}}},{$project:{count:{$size:{$filter:{input:"$data",cond:{$eq:["$$this","product-4"]}}}}}}])