Database

db={"collection":[{"name":"EXAMPLE","schedules":[{"schedule_id":"id1","participants":["participant_id1","participant_id2"],},{"schedule_id":"id2","participants":["participant_id1","participant_id2"],},{"schedule_id":"id3","participants":["participant_id1"],},],}],"customers":[{"_id":"participant_id1","name":"Tom"},{"_id":"participant_id2","name":"Tom2"},]}

Query

db.collection.aggregate([{$unwind:{path:"$schedules",includeArrayIndex:"index",preserveNullAndEmptyArrays:true,}},{$lookup:{from:"customers",localField:"schedules.participants",foreignField:"_id",as:"participants",}},{$project:{"participants.address":0,"participants.birthday":0,}},{$group:{_id:"$_id",schedules:{$push:{schedule_id:"$schedules.schedule_id",participants:"$participants"}},name:{$first:"$name"}}}])

Result