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"}}}}}}])

Result