Database

[{"id":1,status:"active",parent_id:5},{"id":2,status:"retracted",parent_id:3},{"id":3,status:"parent",},{"id":5,status:"parent"},{"id":6,status:"active",parent_id:5},{"id":1,status:"no",}]

Query

db.collection.aggregate([{$match:{$and:[{$or:[{status:"active",},{status:"retracted",},],},{id:{$in:[1,2]},},],}},{$lookup:{from:"collection",let:{parentID:"$parent_id"},pipeline:[{$match:{$expr:{$eq:["$id","$$parentID"],}}}],as:"parent",},},])

Result