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([{$match:{product_type:{$in:["product-1","product-4"]}}},{$group:{_id:"$user_id",count:{"$addToSet":"$product_type"}}},{$addFields:{count:{$size:"$count"}}}])

Result