Puoi trovare "l'oggetto con il valore del campo massimo" in spring-data-mongodb. Mongo ottimizzerà le combinazioni di ordinamento/limite SE il campo di ordinamento è indicizzato (o il campo @Id). Altrimenti è ancora abbastanza buono perché utilizzerà un algoritmo top-k ed eviterà l'ordinamento globale (mongodb ordina doc) . Questo è tratto da esempio di Mkyong ma prima faccio l'ordinamento e imposto il limite a un secondo.
Query query = new Query();
query.with(new Sort(Sort.Direction.DESC, "idField"));
query.limit(1);
MyObject maxObject = mongoTemplate.findOne(query, MyObject.class);