Esimerkki 1:
Alkaen kuvasta keskustellaksesi ja kuinka '$max'-operaattori toimii MongoDB-kuoressa, meillä on oltava kokoelma nimeltä 'data', joka on luotava jo. Luodaksemme tämän kokoelman, meidän on lisättävä siihen joitakin tietueita suoraan ilman mitään 'luo'-ohjetta. Lisäysohje riittää luomaan kokoelman ja lisäämään siihen tietueet. Käytämme kyselyssä 'insertMany'-funktiota lisätäksemme neljä tietuetta, joista jokaisessa on 4 erityyppistä kenttää.
testata > db.data.insertMany ( [ { 'id' : yksi , 'Nimi' : 'Bravo' , 'Palkka' : 65 000 , 'Ikä' : 44 } ,... { 'id' : 2 , 'Nimi' : 'Stephen' , 'Palkka' : 77 000 , 'Ikä' : 55 } ,
... { 'id' : 3 , 'Nimi' : 'Maria' , 'Palkka' : 42 000 , 'Ikä' : 27 } ,
... { 'id' : 4 , 'Nimi' : 'Hawkin' , 'Palkka' : 58 000 , 'Ikä' : 33 } ] )
Lisää-komento on onnistunut ja tulossanoma osoittaa, että tietueet on lisätty.
Kun tietueet on lisätty MongoDB:n 'data' -kokoelmaan, on aika nähdä ne tietueet kuoressa. Siten suoritamme 'find()'-funktion käskyn MongoDB Cli:ssä ja sen jälkeen 'forEach()' -funktion, jolloin printjson-argumentti näyttää tuloksen JSON-muodossa. Shellissä näkyvä tulos näyttää yhteensä 4 asiakirjaa kokoelmasta, jotka näkyvät seuraavassa tulostekuvassa:
testata > db.data.find ( ) .jokaiselle ( printjson )
Kokeillaan '$max'-operaattoria MongoDB:n päivityskomennossa jo lisättyjen tietueiden muokkaamiseksi. Siten updateOne()-funktiota käytetään tässä muokkaamaan vain yhtä 'data'-kokoelman tietuetta, kuten tiettyä tietuetta, jossa 'id'-kentän arvo on '2'. '$max'-operaattoria käytetään 'Data'-keräyksen 'Palkka'-kenttään sen tarkistamiseksi, onko 'Palkka'-kentän arvo suurempi kuin 55000. Jos ei, päivitä tietue arvolla 55000. Tämän tulosteen tulos. updateOne()-funktiokyselyllä, joka näyttää '0' muutosmäärän tietueessa '2' on alle 55 000 palkan arvoa.
testata > db.data.updateOne ( { id: 2 } , { $ max : { Palkka: 55 000 } } )
Tämän päivityksen jälkeen yritämme samaa 'find()'-funktion kyselyä näyttääksemme muokatun tuloksen MongoDB-komentorivikuoressa. Mutta saamme saman tulosteen, jonka saimme ennen 'päivitys'-ohjeen käyttöä. Ei tapahtunut muutosta, koska 77000-arvo on suurempi kuin 55000.
testata > db.data.find ( ) .jokaiselle ( printjson )
Kokeillaan samaa updateOne()-kyselyä vielä kerran pienellä muokkauksella. Tällä kertaa kokeilemme suurempaa arvoa, joka on '85000' kuin '77000'-arvoa, joka on jo 'tiedonkeruun' Palkka-kentässä muuttaaksemme tuloksiamme. Tulos näyttää tällä kertaa muutosmäärän '1', koska '85000'-arvo korvaa kentässä jo olemassa olevan arvon '77000', kun vertailu tapahtui vain tämän kyselyn '$max'-operaattorin takia.
testata > db.data.updateOne ( { id: 2 } , { $ max : { Palkka: 85 000 } } )
Korvattuamme onnistuneesti pienemmän arvon '77000' uudella arvolla '85000' MongoDB:n '$max'-operaattorin kautta, käytämme lopuksi 'find()'-funktiota 'db'-ohjeessa tarkistaaksemme tämän päivityksen. onko päivitys onnistunut vai ei. Tulos osoittaa, että tämän kokoelman 2. tietueen Palkka-kentän arvo on päivitetty täydellisesti.
testata > db.data.find ( ) .jokaiselle ( printjson )
Esimerkki 2:
Siirrytään toiseen esimerkkiin käyttääksesi '$max'-operaattoria MongoDB:ssä. Tällä kertaa jätimme pois '$max'-operaattorin ryhmittelemään ja näyttämään kokoelman yksilölliset tietueet, jos samoilla kenttäarvoilla on kaksoiskappaleita. Tätä varten lisäämme vielä 2 tietuetta 'testi'-tietokannan 'data'-kokoelmaan. Nämä tietueet sisältävät 2 samaa arvoa 'Nimi'-kentässä, jotka ovat myös jo lisätyssä 4 tietueessa ja loput ovat erilaisia. Tietueiden lisäämiseen käytämme samaa ”db”-käskyä, joka sisältää ”insertMany”-funktion, jotta ”data”-kokoelma päivittyy.
testata > db.data.insertMany ( [ { 'id' : 5 , 'Nimi' : 'Bravo' , 'Palkka' : 35 000 , 'Ikä' : Neljä viisi } ,… { 'id' : 6 , 'Nimi' : 'Hawkin' , 'Palkka' : 67 000 , 'Ikä' : 33 } ] )
Ohje suoritetaan onnistuneesti.
Nyt kun 2 uutta tietuetta on lisätty, voit myös näyttää ne käyttämällä samaa 'etsi'-toimintoa 'db'-ohjeessa, jota seuraa 'forEach'-toiminto. Seuraava kuvan näyttötulos näyttää 2 uutta tietuetta tämän kokoelman lopussa:
testata > db.data.find ( ) .jokaiselle ( printjson )
'Data'-keräyksen 6 tietueen näyttämisen jälkeen olemme valmiita suorittamaan sille aggregointitoiminnon. Tästä syystä 'koonti'-toimintoa käytetään seuraavassa luetellussa kyselyssä. Tällä toiminnolla käytämme “$group”-operaattoria ryhmittelemään “data”-kokoelman tietueita kenttien “id” ja “Palkka” yksilöllisten nimien mukaan. '$max'-operaattoria käytetään tietueiden 'Palkka'-kenttään saadakseen näyttöön suurimmat arvot. Saat suurimman arvon Palkka-kentästä nimien kaksoiskappaleiden mukaan 'Nimi'-kentässä, jota käytetään 'id':nä tälle ryhmittelylle näytettäväksi. Yhteensä 4 tietuetta näytetään. Pienin arvo (kopiotietueista) ohitetaan, kun suurin arvo näytetään.
db.data.aggregate ( [ { $ryhmä : { _id: ' $Name ' , Palkka: { $ max : ' $ Palkka ' } } } ] )
Johtopäätös
Tämän oppaan ensimmäinen kappale auttaa sinua ymmärtämään MongoDB:ssä käytettävien operaattoreiden tärkeyden, erityisesti '$max'-operaattorin ja sen käytön MongoDB-kuoressa. Tämä opas sisältää kaksi komentopohjaista esimerkkiä, jotka liittyvät '$max'-operaattoriin sen tarkoituksen osoittamiseksi. Kun käyt läpi MongoDB-kuvia, voit suorittaa hyödyllisiä tapahtumia tietokannassa, olipa kyseessä jo olemassa olevan tietueen korvaaminen uudella arvolla tai tietueiden näyttäminen ryhmittelemällä ne '$max'-operaattorilla.