Database

[{"key":1,"subKey":""},{"key":2,"subKey":1},{"key":3,"subKey":2},{"key":4,"subKey":3}]

Query

db.collection.aggregate([{$match:{key:4}},{$graphLookup:{from:"collection",startWith:"$key",connectFromField:"subKey",connectToField:"key",as:"keys"}},{"$addFields":{"parent":{"$map":{"input":"$keys","as":"res","in":{"key":"$$res.key","subKey":"$$res.subKey"}}},"key":"$key",}},{$project:{keys:0}}])

Result