MongoDB $Min Operatör

Mongodb Min Operator



Om du inte är en ny användare av databaser eller programmering måste du ha provat programmen och frågorna som använder jämförelseoperatorerna – större än, mindre än, lika med, etc. I MongoDB, där vi använder operatorn “$set” för att uppdatera en specifik fältpost eller lägga till en ny post i databasen, kan vi också uppnå samma resultat med jämförelseoperatorerna som '$min' och '$max'. I MongoDB kan operatorn '$min' användas inom många funktionsfrågor för att uppdatera ett specifikt fält när ett nytt värde är mindre än det redan infogade värdet. Det kan också användas för att gruppera och visa poster från en samling i en viss ordning. Den här guiden hjälper dig med olika sätt att kasta bort '$min'-operatorn i MongoDB.

Exempel 1:

Från och med den första illustrationen demonstrerar vi användningen av '$min'-operatorn i MongoDB för att uppdatera en redan införd post med hjälp av MongoDB-skalverktyget i Windows-systemet. Därför måste du ha några poster som redan har lagts till i din databas. Så vi använder funktionsfrågan insertMany() för att lägga till totalt 5 poster i 'order'-samlingen i en 'test'-databas. Var och en av de infogade posterna som visas i följande illustration innehåller totalt 4 fält – id, titel, försäljningspris och skatt. Denna 5-postdata har infogats framgångsrikt enligt den bifogade utgången:

testa > db.order.insertMany ( [ { 'id' :01, 'Titel' : 'Tvål' , 'Försäljningspris' : 500 , 'Beskatta' : 24 } ,
... { 'id' :02, 'Titel' : 'schampo' , 'Försäljningspris' : 700 , 'Beskatta' : 27 } ,
... { 'id' :03, 'Titel' : 'Rengöringsmedel' , 'Försäljningspris' : 400 , 'Beskatta' : 22 } ,
... { 'id' :04, 'Titel' : 'Parfym' , 'Försäljningspris' : 900 , 'Beskatta' : 30 } ,
... { 'id' :05, 'Titel' : 'Dimma' , 'Försäljningspris' : 850 , 'Beskatta' : 27 } ] )







Det är dags att titta på den infogade posten i en 'test'-databas. För det måste du kasta bort metoden 'find()' tillsammans med metoden 'forEach', med 'printjson' som ett argument i 'db'-instruktionen. Genom att använda samlingen som heter 'order', har vi en post som visas på skärmen.



testa > db.order.find ( ) .för varje ( printjson )



Det är hög tid att använda operatorn '$min' i funktionsfrågan 'updateOne' för att uppdatera en enda post från 'order'-samlingen som just har skapats. Fältet 'id' används som en unik identifierare för att uppdatera en specifik post från en databas medan operatorn '$min' tillämpas på ett 'SalePrice'-fält för att uppdatera dess värde till 600 om det är mindre än det redan infogade värdet. Utmatningsmeddelandet visar att frågan är framgångsrik men inga uppdateringar görs.





testa > db.order.updateOne ( { id: 3 } , { $min : { Försäljningspris: 600 } } )

Anledningen till att ingen uppdatering görs av 'SalePrice'-fältet i den tredje posten är att det innehåller värdet '400' som är mindre än '600'. Därför uppdaterar '$min'-operatorn inte minimivärdet på '400' med ett högre värde på '600' enligt följande bifogade find()-fråga:



testa > db.order.find ( ) .för varje ( printjson )

Låt oss göra en liten förändring i uppdateringsfrågan för att få en annan utdata den här gången. Vi använder samma 'db'-instruktion som använder 'updateOne'-funktionen i den för att ändra en enda post med '3'. Operatorn '$min' tillämpas på fältet 'SalePrice' för att ställa in dess värde till '300' om värdet på '300' är mindre än det redan infogade värdet. Vi vet att det redan infogade värdet '400' i SalePrice-fältet är större än det nya värdet '300' som ska jämföras. Så den ersätter '400' med '300' den här gången. Utdatameddelandet visar att denna fråga har körts framgångsrikt. Det modifierade antalet = 1 betyder att 1 post är modifierad.

testa > db.order.updateOne ( { id: 3 } , { $min : { Försäljningspris: 300 } } )

Efter att ha visat posterna för en 'order'-samling från 'test'-databasen i ett JSON-format via 'find()'-funktionsinstruktionen i MongoDB-skalet, fann vi att den 3:e posten har uppdaterats framgångsrikt. Värdet på 400 i fältet 'SalePrice' ersätts med värdet på 300.

testa > db.order.find ( ) .för varje ( printjson )

Exempel 2:

Inom denna MongoDB-illustration hämtar vi posterna för en specifik databas genom att gruppera dem angående '$min'-operatorn enligt minimivärdet i posterna. Anta att du har samma 5 poster i 'order'-samlingen av MongoDB:s 'test'-databas och att du måste ha några dubbletter av data i de specifika fälten i en 'test'-databas. För detta lägger vi till fler poster i 'order'-samlingen i 'test'-databasen. Den här gången infogar vi dubblettvärdena för fältet 'Titel'. Den används i en '$group'-sats för att bilda en grupp av unika värden. Följande utdata visar de nyligen infogade ytterligare 3 posterna för 'test'-databasen. Nu har 'order'-samlingen dubbletter av värden för 'Titel'-fältet i jämförelse med de 5 gamla posterna. Resten använder samma.

Efter att ha haft totalt 8 poster i 'order'-samlingen i 'test'-databasen, är det dags att testa $min-operatören för MongoDB efter dess tillämpning på ett specifikt fält som är grupperat av ett annat fält. Det bifogade sammanlagda kommandot handlar om detta. Det börjar med nyckelordet 'db' följt av namnet på en samling i en viss databas och funktionen aggregate(). Den aggregerade funktionen börjar med användningen av $group-satsen i MongoDB som speciellt används här för att visa data i en grupp som rör 'Titel'-fältet i 'test'-databasen där 'Title'-fältet tas som en unik nyckel .

Samtidigt initieras prisfältet separat som endast tar minimivärdesposten från totalt 8 samma poster via '$min'-operatören som tillämpas på den. Utdata från den här frågekörningen visar visningen av 5 poster med en liten uppdatering i prissektionen. Du kan se att inga repetitiva poster visas. Några unika och minsta värdeposter visas här.

testa > db.order.aggregate ( [ { $grupp : { _id: ' $Title ' , pris: { $min : ' $SalePrice ' } } } ] )

Slutsats

Den här guiden är en samling MongoDB-illustrationer för att visa ett enkelt sätt att använda operatorn '$min'. Introduktionsstycket används för att diskutera syftet med dess användning i MongoDB. Den första delen av den här artikeln diskuterar hur operatorn '$min' fungerar och inte fungerar för en enskild post i en databas, det vill säga att uppdatera eller infoga en post som ett minimivärde. De sista exemplen visar också dess användning för att gruppera samlingsposten som unik i hela databasen.