Database

[{N:"P_1",S:{I:"S_1",FN:"S_1"},C:{I:"S_1",FN:"S_1"}},{N:"P_2",S:{I:"S_1",FN:"S_1"},C:{I:"S_1",FN:"S_1"}},{N:"P_3",S:{I:"S_1",FN:"S_1"},C:{I:"S_1",FN:"S_1"}},{N:"P_4",S:{I:"S_1",FN:"S_1"},C:{I:"C_2",FN:"C_2"}},{N:"P_5",S:{I:"S_1",FN:"S_1"},C:{I:"C_2",FN:"C_2"}},{N:"P_6",S:{I:"S_1",FN:"S_1"},C:{I:"C_2",FN:"C_2"}},{N:"P_7",S:{I:"S_1",FN:"S_1"},C:{I:"C_3",FN:"C_3"}},{N:"P_8",S:{I:"S_1",FN:"S_1"},C:{I:"C_3",FN:"C_3"}},{N:"P_9",S:{I:"S_1",FN:"S_1"},C:{I:"C_3",FN:"C_3"}}]

Query

db.collection.aggregate([{$group:{_id:{Supervisor:"$S.I",Creator:"$C.I"},Count:{$sum:1}}},{$group:{_id:"$_id.Supervisor",Creators:{$push:{Creator:"$_id.Creator",Count:"$Count"}}}},{$project:{_id:0,Supervisor:"$_id",Count:{$let:{vars:{supervisor:{$arrayElemAt:[{$filter:{input:"$Creators",cond:{$eq:["$$this.Creator","$_id"]}}},0]}},in:"$$supervisor.Count"}},Creators:{$filter:{input:"$Creators",cond:{$ne:["$$this.Creator","$_id"]}}}}}])

Result