Esimerkki 1:
Ensimmäisestä kuvasta alkaen esittelemme '$min'-operaattorin käyttöä MongoDB:ssä jo lisätyn tietueen päivittämiseen käyttämällä MongoDB-kuorityökalua Windows-järjestelmässä. Siksi sinulla on oltava joitain tietueita, jotka on jo lisätty tietokantaan. Joten käytämme insertMany()-funktiokyselyä lisätäksemme yhteensä 5 tietuetta 'testi'-tietokannan 'tilaus'-kokoelmaan. Jokainen lisätty tietue, joka näkyy seuraavassa kuvassa, sisältää yhteensä 4 kenttää – id, otsikko, myyntihinta ja vero. Nämä 5 tietueen tiedot on lisätty onnistuneesti liitetyn lähdön mukaisesti:
testata > db.order.insertMany ( [ { 'id' :01, 'Otsikko' : 'Saippua' , 'Myyntihinta' : 500 , 'Verottaa' : 24 } ,... { 'id' :02, 'Otsikko' : 'shampoo' , 'Myyntihinta' : 700 , 'Verottaa' : 27 } ,
... { 'id' :03, 'Otsikko' : 'Pesuaine' , 'Myyntihinta' : 400 , 'Verottaa' : 22 } ,
... { 'id' :04, 'Otsikko' : 'Hajuvesi' , 'Myyntihinta' : 900 , 'Verottaa' : 30 } ,
... { 'id' :05, 'Otsikko' : 'Sumu' , 'Myyntihinta' : 850 , 'Verottaa' : 27 } ] )
On aika tarkastella lisättyä tietuetta 'testi'-tietokannassa. Tätä varten sinun on hylättävä 'find()'-menetelmä yhdessä 'forEach'-menetelmän kanssa, ottaen 'printjson' argumentiksi 'db'-ohjeessa. Käyttämällä kokoelmaa nimeltä 'tilaus', meillä on tietue, joka näkyy näytöllä.
testata > db.tilaus.etsi ( ) .jokaiselle ( printjson )
On korkea aika käyttää '$min'-operaattoria 'updateOne'-funktiokyselyssä päivittääksesi yksi tietue juuri luodusta 'tilaus'-kokoelmasta. 'Id'-kenttää käytetään yksilöllisenä tunnisteena tietyn tietueen päivittämiseen tietokannasta, kun taas '$min'-operaattoria käytetään 'SalePrice'-kenttään päivittämään sen arvo 600:aan, jos se on pienempi kuin jo lisätty arvo. Tulosviesti osoittaa, että kysely on onnistunut, mutta päivityksiä ei ole tehty.
testata > db.order.updateOne ( { id: 3 } , { $min : { Myyntihinta: 600 } } )
Syy siihen, miksi 3. tietueen SalePrice-kenttään ei tehdä päivitystä, on se, että se sisältää arvon '400', joka on pienempi kuin '600'. Siksi '$min'-operaattori ei päivitä minimiarvoa '400' suuremmalla arvolla '600' seuraavan liitteenä olevan find()-kyselyn mukaisesti:
testata > db.tilaus.etsi ( ) .jokaiselle ( printjson )
Tehdään pieni muutos päivityskyselyyn saadaksesi eri tulosteen tällä kertaa. Käytämme samaa 'db'-käskyä, joka käyttää 'updateOne'-toimintoa sen yksittäisen tietueen '3' muokkaamiseen. '$min'-operaattoria käytetään 'SalePrice'-kentässä sen arvoksi '300', jos arvo '300' on pienempi kuin jo lisätty arvo. Tiedämme, että SalePrice-kenttään jo lisätty arvo '400' on suurempi kuin uusi vertailtava arvo '300'. Joten se korvaa '400' sanalla '300' tällä kertaa. Tulosviesti näyttää tämän kyselyn onnistuneen suorituksen. Muokattu määrä = 1 tarkoittaa, että 1 tietue on muokattu.
testata > db.order.updateOne ( { id: 3 } , { $min : { Myyntihinta: 300 } } )
Kun näytettiin 'tilaus'-kokoelman tietueet 'test'-tietokannasta JSON-muodossa 'find()'-funktion käskyn avulla MongoDB-kuoressa, havaitsimme, että kolmas tietue on päivitetty onnistuneesti. 'SalePrice'-kentän arvo 400 korvataan arvolla 300.
testata > db.tilaus.etsi ( ) .jokaiselle ( printjson )
Esimerkki 2:
Tässä MongoDB-kuvassa haemme tietyn tietokannan tietueet ryhmittelemällä ne '$min'-operaattorin mukaan tietueiden vähimmäisarvon mukaan. Oletetaan, että sinulla on samat 5 tietuetta MongoDB:n 'testi'-tietokannan 'tilaus'-kokoelmassa ja että sinulla on oltava päällekkäisiä tietoja 'testi'-tietokannan tietyissä kentissä. Tätä varten lisäämme lisää tietueita 'testi'-tietokannan 'tilaus'-kokoelmaan. Tällä kertaa lisäämme päällekkäiset arvot Otsikko-kenttään. Sitä käytetään '$group' -lauseessa muodostamaan ryhmä yksilöllisiä arvoja. Seuraava tulos näyttää äskettäin lisätyt 3 muuta tietuetta 'testi'-tietokantaan. Nyt 'tilaus'-kokoelmassa on päällekkäisiä arvoja 'Otsikko'-kenttään verrattuna viiteen vanhaan tietueeseen. Loput käyttävät samaa.
Kun 'testi'-tietokannan 'tilaus'-kokoelmassa on yhteensä 8 tietuetta, on aika testata MongoDB:n $min-operaattoria sen jälkeen, kun sitä on käytetty tietyssä kentässä, joka on ryhmitelty toisen kentän mukaan. Liitteenä oleva aggregate-komento koskee kaikkea tätä. Se alkaa avainsanalla 'db', jota seuraa tietyn tietokannan kokoelman nimi ja aggregate()-funktio. Kokoonpanotoiminto alkaa MongoDB:n $group-lausekkeen käytöllä, jota käytetään tässä erityisesti näyttämään tiedot ryhmässä, joka koskee 'testi'-tietokannan 'Title'-kenttää, jossa 'Title'-kenttä otetaan yksilöllisenä avaimena. .
Samanaikaisesti hintakenttä alustetaan erikseen, mikä ottaa vain minimiarvotietueen kahdeksasta samasta tietueesta siihen sovellettavan '$min'-operaattorin kautta. Tämän kyselyn suorituksen tulos näyttää 5 tietuetta pienellä päivityksellä hintaosiossa. Voit nähdä, että toistuvia tietueita ei näytetä. Joitakin ainutlaatuisia ja pienimmän arvon tietueita näytetään tässä.
testata > db.order.aggregate ( [ { $ryhmä : { _id: ' $Title ' , hinta: { $min : ' $myyntihinta ' } } } ] )
Johtopäätös
Tämä opas on kokoelma MongoDB-kuvia, jotka näyttävät yksinkertaisen tavan käyttää “$min”-operaattoria. Johdantokappaletta käytetään keskustelemaan sen käytön tarkoituksesta MongoDB:ssä. Tämän artikkelin ensimmäisessä osassa käsitellään, kuinka '$min'-operaattori toimii, eikä se toimi yhdelle tietokannan tietueelle, eli tietueen päivittämiseen tai lisäämiseen minimiarvona. Viimeiset esimerkit osoittavat myös sen käytön kokoelmatietueen ryhmittelyssä ainutlaatuiseksi koko tietokannassa.