Opérateur MongoDB $Min

Operateur Mongodb Min



Si vous n'êtes pas un nouvel utilisateur de bases de données ou de programmation, vous devez avoir essayé les programmes et les requêtes qui utilisent les opérateurs de comparaison - supérieur à, inférieur à, égal à, etc. Dans MongoDB, où nous utilisons l'opérateur '$set' pour mettre à jour un enregistrement de champ spécifique ou ajouter un nouvel enregistrement à la base de données, nous pouvons également obtenir le même résultat en utilisant les opérateurs de comparaison comme « $min » et « $max ». Dans MongoDB, l'opérateur '$min' peut être utilisé dans de nombreuses requêtes de fonction pour mettre à jour un champ spécifique lorsqu'une nouvelle valeur est inférieure à la valeur déjà insérée. En outre, il peut être utilisé pour regrouper et afficher les enregistrements d'une collection dans un ordre particulier. Ce guide vous aide avec différentes façons de supprimer l'opérateur '$min' dans MongoDB.

Exemple 1:

En commençant par la première illustration, nous démontrons l'utilisation de l'opérateur '$min' dans MongoDB pour mettre à jour un enregistrement déjà inséré à l'aide de l'outil shell MongoDB dans le système Windows. Par conséquent, vous devez avoir des enregistrements déjà ajoutés à votre base de données. Ainsi, nous utilisons la requête de fonction insertMany() pour ajouter un total de 5 enregistrements dans la collection 'order' d'une base de données 'test'. Chacun des enregistrements insérés qui sont affichés dans l'illustration suivante contient un total de 4 champs - id, titre, prix de vente et taxe. Ces données à 5 enregistrements sont insérées avec succès conformément à la sortie jointe :

test > db.order.insertMany ( [ { 'identifiant' :01, 'Titre' : 'Savon' , 'Prix de vente' : 500 , 'Impôt' : 24 } ,
... { 'identifiant' :02, 'Titre' : 'shampooing' , 'Prix de vente' : 700 , 'Impôt' : 27 } ,
... { 'identifiant' :03, 'Titre' : 'Détergent' , 'Prix de vente' : 400 , 'Impôt' : 22 } ,
... { 'identifiant' :04, 'Titre' : 'Parfum' , 'Prix de vente' : 900 , 'Impôt' : 30 } ,
... { 'identifiant' :05, 'Titre' : 'Brume' , 'Prix de vente' : 850 , 'Impôt' : 27 } ] )







Il est temps de regarder l'enregistrement inséré dans une base de données 'test'. Pour cela, vous devez rejeter la méthode 'find()' avec la méthode 'forEach', en prenant le 'printjson' comme argument dans l'instruction 'db'. En utilisant la collection nommée 'commande', nous avons un enregistrement affiché à l'écran.



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



Il est grand temps d'utiliser l'opérateur '$min' dans la requête de fonction 'updateOne' pour mettre à jour un seul enregistrement de la collection 'order' qui vient d'être créée. Le champ 'id' est utilisé comme identifiant unique pour mettre à jour un enregistrement spécifique d'une base de données tandis que l'opérateur '$min' est appliqué à un champ 'SalePrice' pour mettre à jour sa valeur à 600 si elle est inférieure à la valeur déjà insérée. Le message de sortie indique que la requête a réussi mais qu'aucune mise à jour n'est effectuée.





test > db.order.updateOne ( { identifiant: 3 } , { $min : { Prix ​​de vente: 600 } } )

La raison pour laquelle aucune mise à jour n'est apportée au champ 'SalePrice' du 3ème enregistrement est qu'il contient la valeur de '400' qui est inférieure à '600'. Par conséquent, l'opérateur « $min » ne met pas à jour la valeur minimale de « 400 » avec une valeur supérieure de « 600 » conformément à la requête find() ci-jointe :



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

Apportons une petite modification à la requête de mise à jour pour obtenir une sortie différente cette fois. Nous utilisons la même instruction 'db' qui utilise la fonction 'updateOne' pour modifier un seul enregistrement de '3'. L'opérateur '$min' est appliqué au champ 'SalePrice' pour définir sa valeur sur '300' si la valeur de '300' est inférieure à la valeur déjà insérée. Nous savons que la valeur déjà insérée de '400' du champ SalePrice est supérieure à la nouvelle valeur de '300' à comparer. Donc, il remplace '400' par '300' cette fois. Le message de sortie indique l'exécution réussie de cette requête. Le nombre modifié = 1 signifie qu'1 enregistrement est modifié.

test > db.order.updateOne ( { identifiant: 3 } , { $min : { Prix ​​de vente: 300 } } )

Après avoir affiché les enregistrements d'une collection 'order' de la base de données 'test' au format JSON via l'instruction de fonction 'find()' dans le shell MongoDB, nous avons constaté que le 3ème enregistrement est mis à jour avec succès. La valeur 400 du champ 'SalePrice' est remplacée par la valeur 300.

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

Exemple 2 :

Dans cette illustration MongoDB, nous récupérons les enregistrements d'une base de données spécifique en les regroupant concernant l'opérateur '$min' en fonction de la valeur minimale dans les enregistrements. Supposons que vous ayez les 5 mêmes enregistrements dans la collection 'commande' de la base de données 'test' de MongoDB et que vous ayez besoin d'avoir des données en double dans les champs particuliers d'une base de données 'test'. Pour cela, nous ajoutons plus d'enregistrements dans la collection 'commande' de la base de données 'test'. Cette fois, nous insérons les valeurs en double pour le champ 'Titre'. Il est utilisé dans une clause « $group » pour former un groupe de valeurs uniques. La sortie suivante affiche les 3 enregistrements supplémentaires nouvellement insérés pour la base de données 'test'. Désormais, la collection 'commande' a des valeurs en double pour le champ 'Titre' par rapport aux 5 anciens enregistrements. Le reste utilise la même chose.

Après avoir eu un total de 8 enregistrements dans la collection 'order' de la base de données 'test', il est temps de tester l'opérateur $min de MongoDB après son application sur un champ spécifique qui est regroupé par un autre champ. La commande d'agrégation ci-jointe est tout à ce sujet. Il commence par le mot-clé 'db' suivi du nom d'une collection dans une base de données particulière et de la fonction 'aggregate()'. La fonction d'agrégat commence par l'utilisation de la clause $group de MongoDB qui est surtout utilisée ici pour afficher les données dans un groupe concernant le champ 'Titre' de la base de données 'test' où le champ 'Titre' est pris comme clé unique .

Dans le même temps, le champ prix est initialisé séparément ce qui ne prend que l'enregistrement de valeur minimum sur le total de 8 enregistrements identiques via l'opérateur « $min » qui lui est appliqué. La sortie de cette exécution de requête montre l'affichage de 5 enregistrements avec une petite mise à jour dans la section prix. Vous pouvez voir qu'aucun enregistrement répétitif n'est affiché. Certains enregistrements uniques et de plus petite valeur sont affichés ici.

test > db.order.aggregate ( [ { $groupe : { _identifiant: ' $Titre ' , le prix: { $min : ' $VentePrix ' } } } ] )

Conclusion

Ce guide est une collection d'illustrations MongoDB pour afficher une manière simple d'utiliser l'opérateur '$min'. Le paragraphe d'introduction est utilisé pour discuter du but de son utilisation dans MongoDB. La première partie de cet article explique comment l'opérateur '$min' fonctionne et ne fonctionne pas pour un seul enregistrement dans une base de données, c'est-à-dire pour mettre à jour ou insérer un enregistrement comme valeur minimale. De plus, les derniers exemples démontrent son utilisation pour regrouper l'enregistrement de collection comme unique dans toute la base de données.