Database

[{"id":1,"types":["online","offline"],"applications":[["online","online"],["offline"]]}]

Query

db.collection.aggregate([{$project:{id:1,types:{$map:{input:"$types",as:"type",in:{type:"$$type",applications:{$filter:{input:"$applications",as:"application",cond:{$allElementsTrue:{$map:{input:"$$application",in:{$eq:["$$this","$$type"]}}}}}}}}}}},{$addFields:{types:{$map:{input:"$types",in:{$mergeObjects:["$$this",{count:{$reduce:{input:"$$this.applications",initialValue:0,in:{$add:["$$value",{$size:"$$this"}]}}}}]}}}}}])

Result