Database

[{_id:ObjectId("5e41877df4cebbeaebec5146"),id:111111111,name:"George",relatedPeople:[{id:222222222,relation:"child"}],/** A bunch of other data I don't care about*/},{_id:ObjectId("5e41877df4cebbeaebec5147"),id:222222222,name:"Jacob",relatedPeople:[{id:111111111,relation:"father"}],/** A bunch of other data I don't care about*/},{_id:ObjectId("5e41877df4cebbeaebec5148"),id:333333333,name:"some guy",relatedPeople:[],/** A bunch of other data I don't care about*/},]

Query

db.collection.aggregate([{$project:{id:1,name:1,relatedPeople:1}},{$lookup:{from:"collection",let:{relatedPeopleIds:"$relatedPeople.id"},pipeline:[{$match:{$expr:{$in:["$id","$$relatedPeopleIds"]}}},{$project:{id:1,name:1,},},],as:"relatedPeople2",},},{$set:{relatedPeople:{$map:{input:"$relatedPeople",in:{$mergeObjects:["$$this",{$arrayElemAt:["$relatedPeople2",{$indexOfArray:["$relatedPeople2.id","$$this.id"]}]}]}}}}},{$unset:"relatedPeople2"}])

Result