Database

[{"id":1,"sub":[1,2,3]},{"id":2,"sub":[2,3,4]},{"id":3,"sub":[4,5,6]},{"id":4,"sub":[7,8,9]}]

Query

db.collection.aggregate([{$group:{_id:null,current:{$push:"$$ROOT"},all:{$push:"$sub"}}},{$unwind:"$current"},{$project:{id:"$current.id",_id:0,count:{$size:{$filter:{input:{$map:{input:"$all",in:{$setIntersection:["$$this","$current.sub"]}}},cond:{$and:[{$ne:["$$this",[]]},{$ne:["$$this","$current.sub"]}]}}}}}}])

Result