Database
[{name:"use_name",grades:[{class:"math",grade:100},{class:"english",grade:90}]}]
Query
db.collection.aggregate([{$set:{grades:{"$reduce":{"input":"$grades","initialValue":null,"in":{"$cond":{"if":{$or:[{$eq:[null,"$$value"]},{$gt:["$$this.grade","$$value.grade"]}]},"then":"$$this","else":"$$value"}}}}}}])