MongoDB : Comment trouver la valeur maximale dans une collection



Vous pouvez utiliser les méthodes suivantes pour trouver la valeur maximale d’un champ dans MongoDB :

Méthode 1 : renvoyer un document contenant la valeur maximale

db.teams.find().sort({"field":-1}).limit(1)

Ce morceau de code trie tous les documents de la collection par ordre décroissant en fonction d’un champ spécifique, puis renvoie uniquement le premier document.

Méthode 2 : renvoyer uniquement la valeur maximale

db.teams.find().sort({"field":-1}).limit(1).toArray().map(function(u){return u.field})

Les exemples suivants montrent comment utiliser chaque méthode avec une équipe de collecte avec les documents suivants :

db.teams.insertOne({team: "Mavs", position: "Guard", points: 31})
db.teams.insertOne({team: "Spurs", position: "Guard", points: 22})
db.teams.insertOne({team: "Rockets", position: "Center", points: 19})
db.teams.insertOne({team: "Warriors", position: "Forward", points: 26})
db.teams.insertOne({team: "Cavs", position: "Guard", points: 33})

Exemple 1 : retourner un document contenant une valeur maximale

Nous pouvons utiliser le code suivant pour renvoyer le document qui contient la valeur maximale dans le champ « points » :

db.teams.find().sort({"points":-1}).limit(1) 

Cette requête renvoie le document suivant :

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Ce document est renvoyé car il contient la valeur la plus élevée (33) dans le champ « points » parmi tous les documents.

Exemple 2 : renvoyer uniquement la valeur maximale

Nous pouvons utiliser le code suivant pour renvoyer uniquement la valeur maximale dans le champ « points » sur tous les documents :

db.teams.find().sort({"points":-1}).limit(1).toArray().map(function(u){return u.points}) 

Cette requête renvoie le résultat suivant :

[ 33 ] 

Notez que seule la valeur max elle-même (33) est renvoyée au lieu de l’intégralité du document contenant la valeur max.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans MongoDB :

MongoDB : Comment regrouper par et compter
MongoDB : Comment regrouper par plusieurs champs
MongoDB : Comment vérifier si le champ contient une chaîne

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *