Database

[{class_id:149,scores:[{type:"exam",score:84.72},{type:"quiz",score:7.88},{type:"homework",score:22.88},{type:"homework",score:80.85}]},]

Query

db.collection.aggregate([{$match:{class_id:149}},{$project:{avg_exam_score:{$avg:{"$map":{"input":{$filter:{input:"$scores",cond:{$eq:["$$this.type","exam"]}}},"in":"$$this.score"}}}}}])

Result