Database

[{"subject":"app development","topic":"dart","subtopic":"flutter2","questionType":"EASY","questionTitle":"how angular works"},{"subject":"app development","topic":"dart","subtopic":"flutter","questionType":"EASY","questionTitle":"how angular works"},{"subject":"app development","topic":"javascript","subtopic":"react native","questionType":"EASY","questionTitle":"how angular works"}]

Query

db.collection.aggregate([{$group:{_id:{subject:"$subject",topic:"$topic"},subtopic:{$addToSet:"$subtopic"}}},{$group:{_id:"$_id.subject",topics:{$push:{topic:"$_id.topic",sub:"$subtopic"}}}},{$project:{_id:0,subject:"$_id",topics:1}}])

Result