Opérateur MongoDB $Max

Operateur Mongodb Max



MongoDB a proposé de nombreux opérateurs pour effectuer des transactions spéciales telles que la mise à jour des enregistrements, l'ajout d'un nouvel enregistrement et l'affichage des enregistrements sous certaines conditions. L'un de ces opérateurs est l'opérateur '$max' qui est utilisé pour vérifier la plus grande valeur dans l'enregistrement. En dehors de cela, nous pouvons l'utiliser pour mettre à jour la plus petite valeur avec une nouvelle valeur la plus grande après les avoir comparées dans l'instruction de fonction 'mise à jour'. L'autre utilisation de l'opérateur '$max' est de regrouper et d'afficher les enregistrements d'une certaine collection de manière à ce qu'elle ne puisse afficher que la plus grande valeur tout en ignorant la plus petite valeur lorsqu'il y a des enregistrements en double dans la base de données. Dans ce guide, nous allons utiliser des exemples de requêtes simples pour discuter des utilisations mentionnées précédemment de l'opérateur '$ max' dans l'utilitaire de ligne de commande MongoDB de notre plate-forme Windows.

Exemple 1:

En commençant par l'illustration à discuter et comment l'opérateur '$ max' fonctionne dans le shell MongoDB, nous devons avoir une collection nommée 'data' qui doit déjà être créée. Pour créer cette collection, nous devons y ajouter directement des enregistrements sans utiliser d'instruction 'create'. L'instruction d'insertion est suffisante pour créer une collection et y ajouter les enregistrements. Nous utilisons la fonction 'insertMany' dans la requête pour ajouter quatre enregistrements, chacun ayant 4 champs de types différents.

test > db.data.insertMany ( [ { 'identifiant' : un , 'Nom' : 'Bravo' , 'Un salaire' : 65000 , 'Âge' : 44 } ,
... { 'identifiant' : 2 , 'Nom' : 'Stephen' , 'Un salaire' : 77000 , 'Âge' : 55 } ,
... { 'identifiant' : 3 , 'Nom' : 'Maria' , 'Un salaire' : 42000 , 'Âge' : 27 } ,
... { 'identifiant' : 4 , 'Nom' : 'Hawkins' , 'Un salaire' : 58000 , 'Âge' : 33 } ] )







La commande d'insertion a réussi et le message de sortie indique que les enregistrements ont été ajoutés.



Après avoir inséré les enregistrements dans la collection 'data' de notre MongoDB, il est temps de voir ces enregistrements sur le shell. Ainsi, nous exécutons l'instruction de fonction 'find()' sur la MongoDB Cli suivie de la fonction 'forEach()', en prenant l'argument printjson pour afficher un résultat au format JSON. Le résultat affiché dans le shell montre un total de 4 documents dans la collection qui sont affichés dans l'image de sortie suivante :



test > db.data.find ( ) .pour chaque ( printjson )





Essayons l'opérateur '$max' dans la commande de mise à jour de MongoDB pour modifier les enregistrements déjà insérés. Ainsi, le updateOne() est utilisé ici pour ne modifier qu'un seul enregistrement de collecte de 'données' comme un enregistrement spécifique où le champ 'id' a une valeur de '2'. L'opérateur '$max' est appliqué au champ 'Salaire' de la collection 'données' pour vérifier si le champ 'Salaire' a une valeur supérieure à 55000. Sinon, mettez à jour l'enregistrement avec 55000. Le résultat de sortie pour ce La requête de fonction updateOne() qui affiche un nombre de modifications '0' car l'enregistrement '2' a moins de 55 000 valeurs salariales.

test > db.data.updateOne ( { identifiant: 2 } , { $max : { Un salaire: 55000 } } )



Après cette mise à jour, nous essayons la même requête de fonction 'find()' pour afficher le résultat modifié sur le shell de ligne de commande MongoDB. Mais nous obtenons la même sortie qu'avant d'utiliser l'instruction 'update'. Il n'y a pas eu de changement car la valeur 77000 est supérieure à 55000.

test > db.data.find ( ) .pour chaque ( printjson )

Essayons à nouveau la même requête updateOne() avec une petite modification. Cette fois, nous essayons la valeur la plus élevée qui est '85000' que la valeur '77000' qui réside déjà dans le champ 'Salaire' de la collecte 'données' pour faire une différence dans notre sortie. La sortie affiche le nombre de modifications '1' cette fois car la valeur '85000' remplace la valeur déjà présente de '77000' dans le champ après que la comparaison a eu lieu juste à cause de l'opérateur '$max' dans cette requête.

test > db.data.updateOne ( { identifiant: 2 } , { $max : { Un salaire: 85000 } } )

Après avoir remplacé avec succès la plus petite valeur de '77000' par une nouvelle valeur de '85000' via l'opérateur '$ max' de MongoDB, nous utilisons enfin la fonction 'find()' dans l'instruction 'db' pour vérifier cette mise à jour, s'il est mis à jour avec succès ou non. La sortie montre que la valeur du champ « Salaire » d'un 2e enregistrement de cette collection est parfaitement mise à jour.

test > db.data.find ( ) .pour chaque ( printjson )

Exemple 2 :

Passons à un autre exemple pour utiliser l'opérateur '$ max' dans MongoDB. Cette fois, nous avons supprimé l'opérateur '$max' pour regrouper et afficher les enregistrements uniques d'une collection s'il existe des doublons pour les mêmes valeurs de champ. Pour cela, nous insérons 2 enregistrements supplémentaires dans la collection « data » d'une base de données « test ». Ces enregistrements contiennent les 2 mêmes valeurs dans le champ 'Nom' qui sont également dans les 4 enregistrements déjà insérés et le reste est différent. Pour insérer les enregistrements, nous utilisons la même instruction 'db' qui contient la fonction 'insertMany' pour que la collection 'data' soit mise à jour.

test > db.data.insertMany ( [ { 'identifiant' : 5 , 'Nom' : 'Bravo' , 'Un salaire' : 35000 , 'Âge' : Quatre cinq } ,
{ 'identifiant' : 6 , 'Nom' : 'Hawkins' , 'Un salaire' : 67000 , 'Âge' : 33 } ] )

L'instruction est exécutée avec succès.

Maintenant que les 2 nouveaux enregistrements sont ajoutés, vous pouvez également les afficher en utilisant la même fonction 'find' dans l'instruction 'db' suivie de la fonction 'forEach'. La sortie d'affichage suivante dans l'image montre les 2 nouveaux enregistrements à la fin de cette collection :

test > db.data.find ( ) .pour chaque ( printjson )

Après avoir affiché les 6 enregistrements de collecte de 'données', nous sommes prêts à exécuter la fonction d'agrégation dessus. Par conséquent, la fonction 'aggregate' est utilisée dans la requête répertoriée ci-dessous. Avec cette fonction, nous utilisons l'opérateur '$group' pour regrouper l'enregistrement d'une collection 'data' en fonction des noms uniques du champ 'id' et du champ 'Salary'. L'opérateur « $max » est appliqué au champ « Salaire » des enregistrements pour obtenir les valeurs maximales à afficher. Obtenez la plus grande valeur du champ 'Salaire' en fonction des noms en double dans le champ 'Nom' qui est utilisé comme 'id' pour que ce regroupement soit affiché. Un total de 4 enregistrements sont affichés. La plus petite valeur (provenant des enregistrements en double) est ignorée tandis que la plus grande valeur est affichée.

db.data.aggregate ( [ { $groupe : { _identifiant: ' $Nom ' , Un salaire: { $max : ' $Salaire ' } } } ] )

Conclusion

Le premier paragraphe de ce guide vous aide à comprendre l'importance des opérateurs utilisés dans MongoDB, en particulier l'opérateur '$max' et son utilisation dans le shell MongoDB. Ce guide contient deux exemples basés sur des commandes liés à l'opérateur '$max' pour démontrer son objectif. En parcourant les illustrations MongoDB, vous pourrez effectuer quelques transactions utiles dans la base de données, qu'il s'agisse de remplacer un enregistrement déjà existant par une nouvelle valeur ou d'afficher les enregistrements en les regroupant via l'opérateur '$max'.