Database

db={classroom:[{"_id":"628a7ea21e2a666d7872efbf","name":"Test Class","owner":"60763491b98b9e186ef33137","schoolId":"607dff27c712219af1e65d83","description":"This is a test class.","roster":[],"modules":[{"name":"Test Module 1","id":"62a7082d0bf84c43fdfe95ff","isPublished":false},{"name":"Test Module 2","id":"62a72d6378ce044dca32e1a2","isPublished":false}]}],assignments:[{"classroomId":"628a7ea21e2a666d7872efbf","moduleId":"62a7082d0bf84c43fdfe95ff","name":"Assignment 1","description":"Test description","created":1655120822055,"reading":null,"questions":[],"isPublished":true,"_id":"62a723b6683ffc4b11940c7b"}]}

Query

db.classroom.aggregate([{$lookup:{from:"assignments",localField:"modules.id",foreignField:"moduleId",as:"assignments"}},{$set:{modules:{$map:{input:"$modules",as:"module",in:{$mergeObjects:["$$module",{"assignments":{$filter:{input:"$assignments",as:"asgn",cond:{$eq:["$$module.id","$$asgn.moduleId"]}}}}]}}}}},{$unset:"assignments"}])

Result