Database

db={"TableA":[{"_id":1,"level":1},{"_id":2,"level":1},{"_id":3,"level":3},],"TableB":[{"_id":1,"id_a":1,"ac":1,},{"_id":2,"id_a":1,"ac":1,},{"_id":3,"id_a":3,"ac":1,},{"_id":4,"id_a":1,"ac":2,},{"_id":5,"id_a":2,"ac":2,},{"_id":6,"id_a":3,"ac":2,},],"TableC":[{"_id":1,"id_a":1,"ac":2,},{"_id":2,"id_a":2,"ac":2,},{"_id":3,"id_a":3,"ac":2,},{"_id":4,"id_a":1,"ac":1,},{"_id":5,"id_a":2,"ac":1,},{"_id":6,"id_a":3,"ac":1,},],}

Query

db.TableA.aggregate([{"$lookup":{"from":"TableB","localField":"_id","foreignField":"id_a","as":"dataFromB","pipeline":[{"$match":{"ac":1}}]}},{"$lookup":{"from":"TableC","localField":"_id","foreignField":"id_a","as":"dataFromC","pipeline":[{"$match":{"ac":2}}]}},{"$match":{"level":1}},{$addFields:{totalB:{$size:"$dataFromB"},totalC:{$size:"$dataFromC"}}},{$project:{dataFromB:0,dataFromC:0}}])

Result