Database
[{"_id":"abc","field1":[],/** array of subdocuments, may be empty*/"field2":"somVal","field3":[/** array of subdocuments, may be empty*/{"fieldToSort":"bcdef"},{"fieldToSort":"abcde"}]},{"_id":"def","field1":[/** array of subdocuments, may be empty*/{"fieldToSort":"bcdef"},{"fieldToSort":"abcde"}],"field3":[]/** array of subdocuments, may be empty* field2 is missing*/}]
Query
db.collection.aggregate([{"$project":{"field1":{"$function":{"body":"function(arr) {return arr.sort((a,b) => (a.fieldToSort > b.fieldToSort) ? 1 : ((b.fieldToSort > a.fieldToSort) ? -1 : 0));}","args":["$field1"],"lang":"js"}},"field3":{"$function":{"body":"function(arr) {return arr.sort((a,b) => (a.fieldToSort > b.fieldToSort) ? 1 : ((b.fieldToSort > a.fieldToSort) ? -1 : 0));}","args":["$field3"],"lang":"js"}}}},])