Database

db={"students":[{"_id":ObjectId("5fbd564981b1313de790b580"),"name":"John Doe","age":"21","image":"https://XXXX/481.png","subjects":[{"_id":ObjectId("5fbd4e6881b1313de790b56b"),"passed":true},{"_id":ObjectId("5fcb63fa8814d96876c687bf")}],"__v":NumberInt("1")}],"subjects":[{"_id":ObjectId("5fbd4e6881b1313de790b56b"),"course":3,"teacher":"John Smith","name":"Math"},{"_id":ObjectId("5fcb63fa8814d96876c687bf"),"name":"IT","course":8,"teacher":"John Peter"}]}

Query

db.students.aggregate([{$match:{_id:ObjectId("5fbd564981b1313de790b580")}},{$lookup:{from:"subjects",localField:"subjects._id",foreignField:"_id",as:"FoundSubject"}},{$addFields:{FoundSubject:"$$REMOVE",subjects:{$map:{input:"$subjects",as:"s",in:{$mergeObjects:["$$s",{$first:{$filter:{input:"$FoundSubject",cond:{$eq:["$$s._id","$$this._id"]}}}}]}}}}}])

Result