Database
[{_id:1,name:"smartphones",products:[{_id:"14",name:"name",visibility:"VISIBLE"},{_id:"15",name:"name",visibility:"VISIBLE"},{_id:"12",name:"name",visibility:"NOT_VISIBLE"},],}]
Query
db.collection.aggregate([{$project:{products:{"$filter":{"input":"$products","as":"pro","cond":{$eq:["$$pro.visibility","VISIBLE"]}}}}},{"$project":{products:{"$slice":["$products",0,2]}}}])