Database
[{"activityId":"A1","children":[{"activityId":"A2"},{"activityId":"A7"}]},{"activityId":"A2","children":[{"activityId":"A3"}]},{"activityId":"A3","children":[{"activityId":"A4"}]},{"activityId":"A4","children":[{"activityId":"A5"}]},{"activityId":"A4","children":[{"activityId":"A6"}]},{"activityId":"A6","children":[]},{"activityId":"A5","children":[]},{"activityId":"A7","children":[]},{"activityId":"B1","children":[{"activityId":"B2"},{"activityId":"B3"}]},{"activityId":"B2","children":[]},{"activityId":"B3","children":[]},{"activityId":"C1","children":[]}]
Query
db.collection.aggregate([{"$match":{"children":[]}},{"$graphLookup":{"from":"collection","startWith":"$activityId","connectFromField":"activityId","connectToField":"children.activityId","as":"workflowStreams"}},{"$set":{"workflowStreams":{"$setUnion":[["$activityId"],"$workflowStreams.activityId"]}}},{"$group":{"_id":"","workflowStreams":{"$push":"$workflowStreams"}}}])