Database

[{"_id":1,"names":[{"changed_at":100},{"changed_at":200},{"changed_at":300}]},{"_id":2,"names":[{"changed_at":2},{"changed_at":500},{"changed_at":7}]},{"_id":3,"names":[{"changed_at":10},{"changed_at":20},{"changed_at":30}]},{"_id":4,"names":[{"changed_at":1000},{"changed_at":2},{"changed_at":5}]}]

Query

db.collection.aggregate([{"$set":{"max-date":{"$max":"$names.changed_at"}}},{"$sort":{"max-date":-1}},{"$limit":3}])

Result