MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoTemplate-Methode oder -Abfrage zum Finden von Maximalwerten aus einem Feld

Sie finden "das Objekt mit dem maximalen Feldwert" in spring-data-mongodb. Mongo optimiert Sortier-/Limit-Kombinationen, WENN das Sortierfeld (oder das @Id-Feld) indiziert ist. Ansonsten ist es immer noch ziemlich gut, weil es einen Top-k-Algorithmus verwendet und die globale Sortierung vermeidet (Mongodb-Sortierdokument) . Dies ist aus Mkyongs Beispiel aber ich sortiere zuerst und setze das Limit auf eine Sekunde.

Query query = new Query();
query.with(new Sort(Sort.Direction.DESC, "idField"));
query.limit(1);
MyObject maxObject = mongoTemplate.findOne(query, MyObject.class);