Count() & Remove() Funktiot sisään MongoDB esimerkin kanssa

⚡ Älykäs yhteenveto

Count()- ja Remove()-funktiot MongoDB raportoi kokoelman sisältämien dokumenttien lukumäärän ja poistaa siitä dokumentteja. Count()-metodi palauttaa dokumenttien kokonaismäärän, kun taas remove()-metodi poistaa kaikki dokumentit tai vain ne, jotka vastaavat tiettyä ehtoa.

  • 🔢 Asiakirjojen lukumäärä: count()-metodi palauttaa kokoelmassa olevien tai kyselyä vastaavien dokumenttien lukumäärän.
  • 🎯 Laske suodattimen kanssa: Ehdon antaminen count()-funktiolle raportoi vain ne dokumentit, jotka täyttävät ehdon.
  • 🗑️ Poista asiakirjat: remove()-metodi poistaa joko kaikki dokumentit tai ne, jotka vastaavat kriteeriobjektia.
  • ☝️ Poista yksi: justOne-asetus rajoittaa remove()-funktion poistamaan vain yhden vastaavan dokumentin kaikkien vastaavan dokumentin sijaan.
  • 🔄 Nykyaikaiset menetelmät: countDocuments() ja deleteMany() korvaavat nykyisiä funktioita vanhentuneille count()- ja remove()-funktioille.
  • 🖨️ Tarkista tuloste: Jokainen komento palauttaa tuloksen, joka näyttää poistettujen dokumenttien määrän.

Count() & Remove() Funktiot sisään MongoDB

MongoDB Count()-funktio

Aggregoinnin ideana on suorittaa laskenta kyselyssä palautetuista tuloksista. Oletetaan esimerkiksi, että haluat tietää, mikä on kokoelman asiakirjojen määrä käynnistetyn kyselyn mukaan, MongoDB tarjoaa count()-funktion.

Esimerkki MongoDB Count()-funktio

Katsotaanpa esimerkkiä tästä.

db.Employee.count()

Code Selitys:

  • Yllä oleva koodi suorittaa laskentatoiminnon.

Jos komento suoritetaan onnistuneesti, seuraava Output näytetään

lähtö:

Esimerkki MongoDB Count()-funktio

Tulos osoittaa selvästi, että kokoelmassa on 4 dokumenttia.

MongoDB Laske kyselyehdolla

count()-metodi on hyödyllisin silloin, kun välität kyselyehdon, jolloin se laskee vain vastaavat dokumentit koko kokoelman sijaan. Tästä on hyötyä raporteissa, kuten esimerkiksi osastoon kuuluvien työntekijöiden tai avointen tilausten lukumäärän määrittämisessä.

Seuraava esimerkki laskee työntekijät, joiden Employeeid on suurempi kuin 2:

db.Employee.count({Employeeid:{$gt:2}})

Tässä on mitä tapahtuu:

  • Kyselyobjekti {Employeeid:{$gt:2}} toimii suodattimena käyttäen $gt (suurempi kuin) -operaattoria.
  • count() palauttaa vain niiden dokumenttien määrän, jotka täyttävät suodattimen.
  • Kokoelman loppuosa jätetään kokonaissumman ulkopuolelle.

Nykyisessä MongoDB versioissa countDocuments() on suositeltu metodi ehdolliselle laskennalle, koska se palauttaa aina tarkan tuloksen. Sama kysely toimii sen kanssa:

db.Employee.countDocuments({Employeeid:{$gt:2}})

Molemmat komennot palauttavat yhden numeron, jonka voit tallentaa muuttujaan tai näyttää suoraan. Vastaavan indeksin lisääminen kyselykenttään pitää ehdolliset laskennat nopeina suurissa kokoelmissa.

Muutosten suorittaminen

Kaksi muuta toimintaluokkaa MongoDB ovat päivitys- ja poistolausekkeet.

Päivitystoiminnot mahdollistavat olemassa olevien tietojen muokkaamisen ja poistotoiminnot tietojen poistamisen kokoelmasta.

Poista()-funktio sisään MongoDB

In MongoDB, The db.collection.remove() menetelmää käytetään asiakirjojen poistamiseen kokoelmasta. Joko kaikki asiakirjat voidaan poistaa kokoelmasta tai vain ne, jotka vastaavat tiettyä ehtoa.

Jos annat vain poistokomennon, kaikki asiakirjat poistetaan kokoelmasta.

Esimerkki MongoDB Poista()-funktio

Seuraava koodiesimerkki osoittaa, kuinka tietty asiakirja poistetaan kokoelmasta.

db.Employee.remove({Employeeid:22})

Code Selitys:

  • Yllä oleva koodi käyttää poistotoimintoa ja määrittää kriteerit, joilla tässä tapauksessa poistetaan asiakirjat, joiden työntekijätunnus on 22.

Jos komento suoritetaan onnistuneesti, seuraava Output näytetään

lähtö:

Esimerkki MongoDB Poista()-funktio

Tuloste näyttää, että yksi asiakirja on poistettu.

Poista kaikki dokumentit vs. yksittäinen dokumentti

remove()-metodi voi poistaa kaikki vastaavat dokumentit tai vain yhden, antamistasi argumenteista riippuen. Eron ymmärtäminen estää vahingossa tapahtuvan tiedon menetyksen.

Poistaaksesi kaikki kokoelman dokumentit, anna tyhjä ehto:

db.Employee.remove({})

Tämä poistaa kaikki dokumentit, mutta säilyttää itse kokoelman. Jos haluat poistaa vain ehtoa vastaavat dokumentit, välitä kyselyobjekti, kuten aiemmin on esitetty {Employeeid:22}-metodilla. Jos useita ehtoa vastaavia dokumentteja on useita ja haluat poistaa vain ensimmäisen, lisää justOne-vaihtoehto:

db.Employee.remove({EmployeeName:"Smith"}, {justOne:true})

Keskeiset erot ovat:

  • remove({}) poistaa kaikki kokoelman dokumentit.
  • remove({condition}) poistaa kaikki ehtoa vastaavat dokumentit.
  • remove({condition}, {justOne:true}) poistaa vain ensimmäisen vastaavan dokumentin.

Tarkista aina ehto kahdesti ennen poistokomennon suorittamista, koska tyhjä tai väärä suodatin voi tyhjentää koko kokoelman. Nykyaikaisissa sovelluksissa MongoDB, deleteOne() ja deleteMany() korvaavat nämä mallit ja selkeyttävät tarkoitusta.

Nykyaikaisia ​​vaihtoehtoja count()- ja remove()-funktioille

Sekä count() että remove() ovat vanhoja metodeja. Uudemmat MongoDB ajurit merkitsevät ne vanhentuneiksi ja tarjoavat selkeämpiä korvaavia menetelmiä. Alla oleva taulukko yhdistää jokaisen vanhan menetelmän sen nykyaikaiseen vastineeseen:

Vanha menetelmä Moderni korvaaminen Tarkoitus
Kreivi() countDocuments() Palauttaa täsmällisten dokumenttien tarkan määrän
Kreivi() arvioituAsiakirjojenLaskuri() Palauttaa nopean ja likimääräisen määrän kaikista dokumenteista
Poista() deleteOne() Poistaa ensimmäisen suodatinta vastaavan dokumentin
Poista() poistaMany() Poistaa kaikki suodatinta vastaavat asiakirjat

Uusissa sovelluksissa suosi näitä moderneja menetelmiä. Ne erottavat laskemisen arvioinnista ja yhden dokumentin poistamisen useiden poistamisesta, mikä tekee kyselyistä turvallisempia ja helpompia lukea. Vanhat count()- ja remove()-metodit toimivat edelleen vanhemmissa tutoriaaleissa ja skripteissä.

UKK

remove() poistaa dokumentit, mutta säilyttää kokoelman ja sen indeksit. drop() poistaa koko kokoelman, mukaan lukien kaikki dokumentit ja indeksit. Käytä remove-funktiota datalle ja drop-funktiota hylkätäksesi kokoelman kokonaan.

Ei. remove() poistaa vain kokoelman sisältämiä dokumentteja. Kokoelma, sen indeksit ja kokoonpano pysyvät paikoillaan, joten voit lisätä uusia dokumentteja samaan kokoelmaan myöhemmin luomatta sitä uudelleen.

Legacy count() voi palauttaa likimääräisen arvon sirpaloiduille klustereille epäonnistuneiden toimintojen jälkeen. Tarkan kokonaissumman saamiseksi käytä countDocuments()-funktiota, joka suorittaa aggregoinnin; käytä estimatedDocumentCount()-funktiota, kun nopeus on tärkeämpää kuin tarkkuus.

Tekoäly voi kääntää tavallisen pyynnön oikeaksi laskenta- tai poistokyselyksi oikealla suodattimella ja varoittaa sinua, kun poistokomento vaikuttaisi kaikkiin dokumentteihin. Tarkista se aina ennen suorittamista.

Kyllä. Tekoäly voi tarkastella remove- tai deleteMany-komentoa, merkitä puuttuvan suodattimen, joka tyhjentäisi koko kokoelman, ja ehdottaa ehdon lisäämistä tai varmuuskopion ottamista ennen komennon suorittamista.

Tiivistä tämä viesti seuraavasti: