Database

[{courseID:"Demo",materials:[{moduleNo:1,moduleMaterial:"A",},{moduleNo:1,moduleMaterial:"B",},{moduleNo:3,moduleMaterial:"C",},{moduleNo:4,moduleMaterial:"D",}]}]

Query

db.collection.aggregate([{"$unwind":"$materials"},{"$match":{"courseID":"Demo","materials.moduleNo":1}},{"$group":{"_id":{"courseID":"$courseID","moduleNo":"$materials.moduleNo"},"materials":{"$push":"$materials.moduleMaterial"}}},{"$project":{"_id":0,"courseID":"$_id.courseID","moduleNo":"$_id.moduleNo","materials":"$materials"}}])

Result