MongoDB $Max-operatör

Mongodb Max Operator



MongoDB kom på många operatörer för att utföra specialtransaktioner som att uppdatera posterna, lägga till en ny post och visa posterna under ett visst villkor. En av dessa operatorer är operatorn '$max' som används för att kontrollera det största värdet i posten. Bortsett från det kan vi använda det för att uppdatera det minsta värdet med ett nytt största värde efter att ha jämfört dem i 'uppdaterings' funktionsinstruktionen. Den andra användningen av operatorn '$max' är att gruppera och visa posterna för en viss samling på ett sätt så att den bara kan visa det största värdet samtidigt som man ignorerar det minsta värdet när det finns några dubbletter av poster i databasen. I den här guiden kommer vi att använda enkla frågeexempel för att diskutera de tidigare nämnda användningarna av operatorn '$max' i kommandoradsverktyget MongoDB i vår Windows-plattform.

Exempel 1:

Från och med illustrationen för att diskutera och hur '$max'-operatorn fungerar i MongoDB-skalet, måste vi ha en samling som heter 'data' som redan måste skapas. För att skapa den här samlingen måste vi lägga till några poster i den direkt utan att behöva använda någon 'skapa'-instruktion. Infogningsinstruktionen räcker för att skapa en samling och lägga till posterna i den. Vi använder funktionen 'insertMany' i frågan för att lägga till fyra poster, som var och en har fyra fält av olika typer.

testa > db.data.insertMånga ( [ { 'id' : ett , 'Namn' : 'Bravo' , 'Lön' : 65 000 , 'Ålder' : 44 } ,
... { 'id' : 2 , 'Namn' : 'Stefan' , 'Lön' : 77 000 , 'Ålder' : 55 } ,
... { 'id' : 3 , 'Namn' : 'Maria' , 'Lön' : 42 000 , 'Ålder' : 27 } ,
... { 'id' : 4 , 'Namn' : 'Hawkin' , 'Lön' : 58 000 , 'Ålder' : 33 } ] )







Insert-kommandot lyckades och utmatningsmeddelandet visar att posterna har lagts till.



Efter att ha infogat posterna i 'data'-samlingen i vår MongoDB, är det dags att se dessa poster på skalet. Därför kör vi funktionsinstruktionen 'find()' på MongoDB Cli följt av funktionen 'forEach()', och tar argumentet printjson för att visa ett resultat i JSON-formatet. Resultatet som visas i skalet visar totalt 4 dokument i samlingen som visas i följande utdatabild:



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





Låt oss prova operatorn '$max' i uppdateringskommandot för MongoDB för att ändra de redan infogade posterna. Således används updateOne() här för att endast modifiera en enda post av 'data'-insamling som en specifik post där 'id'-fältet har värdet '2'. Operatorn '$max' tillämpas på 'Lön'-fältet för 'data'-insamling för att kontrollera om 'Lön'-fältet har ett värde som är större än 55000. Om inte, uppdatera posten med 55000. Utdataresultatet för detta updateOne() funktionsfråga som visar en '0' modifieringsräkning eftersom post '2' har mindre än 55 000 lönevärde.

testa > db.data.updateOne ( { id: 2 } , { $max : { Lön: 55 000 } } )



Efter den här uppdateringen försöker vi samma 'find()'-funktionsfråga för att visa det modifierade resultatet på MongoDB-kommandoradsskalet. Men vi får samma utdata som vi fick innan vi använde 'uppdaterings'-instruktionen. Det gjordes ingen förändring eftersom 77000-värdet är större än 55000.

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

Låt oss prova samma updateOne()-fråga igen med en liten modifiering. Den här gången försöker vi det högre värdet som är '85000' än värdet '77000' som redan finns i 'Lön'-fältet för 'data'-insamling för att göra skillnad i vår produktion. Utdata visar modifikationsantalet '1' den här gången eftersom värdet '85000' ersätter det redan befintliga värdet på '77000' i fältet efter att jämförelsen hände bara på grund av operatorn '$max' i den här frågan.

testa > db.data.updateOne ( { id: 2 } , { $max : { Lön: 85 000 } } )

Efter att framgångsrikt ersätta det mindre värdet på '77000' med ett nytt värde på '85000' genom '$max'-operatorn för MongoDB, använder vi slutligen funktionen 'find()' i 'db'-instruktionen för att leta efter den här uppdateringen, om den har uppdaterats framgångsrikt eller inte. Utdata visar att värdet i fältet 'Lön' för en 2:a post i denna samling är perfekt uppdaterad.

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

Exempel 2:

Låt oss hoppa till ett annat exempel för att använda operatorn '$max' i MongoDB. Den här gången tar vi bort operatorn '$max' för att gruppera och visa de unika posterna för en samling om det finns några dubbletter för samma fältvärden. För detta infogar vi ytterligare 2 poster i 'data'-samlingen i en 'test'-databas. Dessa poster innehåller 2 samma värden i fältet 'Namn' som också finns i de redan infogade 4 posterna och resten är olika. För att infoga posterna använder vi samma 'db'-instruktion som innehåller funktionen 'insertMany' för att 'data'-insamlingen ska uppdateras.

testa > db.data.insertMånga ( [ { 'id' : 5 , 'Namn' : 'Bravo' , 'Lön' : 35 000 , 'Ålder' : Fyra fem } ,
{ 'id' : 6 , 'Namn' : 'Hawkin' , 'Lön' : 67 000 , 'Ålder' : 33 } ] )

Instruktionen exekveras framgångsrikt.

Nu när de 2 nya posterna har lagts till kan du också visa dem med samma 'hitta'-funktion i 'db'-instruktionen följt av 'forEach'-funktionen. Följande visningsutgång i bilden visar de 2 nya posterna i slutet av denna samling:

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

Efter att ha visat de 6 posterna för 'data'-insamling är vi redo att utföra den aggregerade funktionen på den. Därför används funktionen 'aggregation' i följande listade fråga. Med den här funktionen använder vi operatorn '$group' för att gruppera posten för en 'data'-insamling enligt de unika namnen på fälten 'id' och fältet 'Lön'. Operatören '$max' appliceras på fältet 'Lön' i posterna för att få de maximala värdena som ska visas. Få det största värdet från fältet Lön enligt dubblettnamnen i fältet 'Namn' som används som 'id' för att denna gruppering ska visas. Totalt 4 poster visas. Det minsta värdet (från dubblettposterna) ignoreras medan det största värdet visas.

db.data.aggregate ( [ { $grupp : { _id: ' $Name ' , Lön: { $max : ' $ Lön ' } } } ] )

Slutsats

Det första stycket i den här guiden hjälper dig att förstå vikten av operatorer som används i MongoDB, speciellt operatorn '$max' och dess användning i MongoDB-skalet. Den här guiden innehåller två kommandobaserade exempel som är relaterade till operatorn '$max' för att visa dess syfte. Genom att gå igenom MongoDB-illustrationerna kommer du att kunna utföra några användbara transaktioner i databasen, oavsett om det handlar om att ersätta en redan befintlig post med ett nytt värde eller att visa posterna genom att gruppera dem via operatorn '$max'.