Funcțiile Count() & Remove() în MongoDB cu Exemplu

⚡ Rezumat inteligent

Funcțiile Count() și Remove() în MongoDB raportează câte documente conține o colecție și șterge documente din aceasta. Metoda count() returnează totalul documentelor, în timp ce metoda remove() șterge toate documentele sau doar pe cele care îndeplinesc o condiție specificată.

  • 🔢 Numărează documentele: Metoda count() returnează numărul de documente dintr-o colecție sau care corespund unei interogări.
  • 🎯 Numără cu filtru: Transmiterea unei condiții către count() raportează doar documentele care o îndeplinesc.
  • 🗑️ Eliminați documentele: Metoda remove() șterge documentele, fie pe toate, fie pe cele care corespund unui obiect criterii.
  • ☝️ Eliminați unul: Opțiunea justOne limitează remove() la ștergerea unui singur document corespondent în loc de toate corespondențele.
  • 🔄 Metode moderne: countDocuments() și deleteMany() sunt înlocuitorii actuali pentru funcțiile depreciate count() și remove().
  • 🖨️ Verificați ieșirea: Fiecare comandă returnează un rezultat care arată numărul de documente eliminate.

Funcțiile Count() & Remove() în MongoDB

MongoDB Funcția Count().

Conceptul de agregare este de a efectua un calcul pe rezultatele care sunt returnate într-o interogare. De exemplu, să presupunem că doriți să știți care este numărul de documente dintr-o colecție conform interogării lansate, apoi MongoDB oferă funcția count().

Exemplu de MongoDB Funcția Count().

Să ne uităm la un exemplu în acest sens.

db.Employee.count()

Code Explicaţie:

  • Codul de mai sus execută funcția de numărare.

Dacă comanda este executată cu succes, va fi afișată următoarea ieșire

ieșire:

Exemplu de MongoDB Funcția Count().

Rezultatul arată clar că 4 documente sunt acolo în colecție.

MongoDB Numărarea cu o condiție de interogare

Metoda count() este cea mai utilă atunci când se transmite o condiție de interogare, astfel încât să contorizeze doar documentele care corespund în loc de întreaga colecție. Acest lucru este util pentru rapoarte, cum ar fi câți angajați aparțin unui departament sau câte comenzi sunt încă deschise.

Următorul exemplu numără angajații al căror Employeeid este mai mare de 2:

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

Iată ce se întâmplă:

  • Obiectul de interogare {Employeeid:{$gt:2}} acționează ca un filtru, utilizând operatorul $gt (mai mare decât).
  • count() returnează doar numărul de documente care satisfac filtrul.
  • Restul colecției este ignorat în total.

În curs MongoDB versiuni, countDocuments() este metoda recomandată pentru o numărare condiționată, deoarece returnează întotdeauna un rezultat precis. Aceeași interogare funcționează cu aceasta:

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

Ambele comenzi returnează un singur număr, pe care îl puteți stoca într-o variabilă sau îl puteți afișa direct. Adăugarea unui index corespondent pe câmpul interogat menține numărătoarea condiționată rapidă pe colecții mari.

Efectuarea modificărilor

Celelalte două clase de operațiuni în MongoDB sunt declarațiile de actualizare și eliminare.

Operațiile de actualizare permit modificarea datelor existente, iar operațiunile de eliminare permit ștergerea datelor dintr-o colecție.

Funcția Remove() în MongoDB

In MongoDB, db.collection.remove() metoda este folosită pentru a elimina documente dintr-o colecție. Fie toate documentele pot fi eliminate dintr-o colecție, fie numai cele care corespund unei anumite condiții.

Dacă lansați doar comanda de eliminare, toate documentele vor fi eliminate din colecție.

Exemplu de MongoDB Funcția Remove().

Următorul exemplu de cod demonstrează cum să eliminați un anumit document din colecție.

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

Code Explicaţie:

  • Codul de mai sus folosește funcția de ștergere și specifică criteriile care, în acest caz, sunt de a elimina documentele care au ID-ul de angajat ca 22.

Dacă comanda este executată cu succes, va fi afișată următoarea ieșire

ieșire:

Exemplu de MongoDB Funcția Remove().

Rezultatul va arăta că 1 document a fost eliminat.

Eliminați toate documentele față de un singur document

Metoda remove() poate șterge toate documentele corespondente sau doar unul, în funcție de argumentele pe care le transmiteți. Înțelegerea diferenței previne pierderea accidentală a datelor.

Pentru a elimina fiecare document dintr-o colecție, transmiteți o condiție goală:

db.Employee.remove({})

Aceasta șterge toate documentele, dar păstrează colecția în sine. Pentru a elimina doar documentele care corespund unei condiții, transmiteți un obiect de interogare, așa cum s-a arătat anterior cu {Employeeid:22}. Dacă mai multe documente corespund și doriți să ștergeți doar primul, adăugați opțiunea justOne:

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

Diferențele cheie sunt:

  • remove({}) șterge toate documentele din colecție.
  • remove({condition}) șterge toate documentele care îndeplinesc condiția.
  • remove({condition}, {justOne:true}) șterge doar primul document corespondent.

Verificați întotdeauna de două ori condiția înainte de a executa o comandă de eliminare, deoarece un filtru gol sau greșit poate șterge întreaga colecție. În stilul modern MongoDB, deleteOne() și deleteMany() înlocuiesc aceste modele și fac intenția mai clară.

Alternative moderne la count() și remove()

Atât count(), cât și remove() sunt metode vechi. Mai noi MongoDB Driverele le marchează ca fiind depreciate și oferă înlocuiri mai clare. Tabelul de mai jos mapează fiecare metodă veche cu echivalentul său modern:

Metoda Moștenită Înlocuire modernă Scop
numara() numărDocumente() Returnează un număr exact de documente corespondente
numara() estimatedDocumentCount() Returnează o numărătoare rapidă și aproximativă a tuturor documentelor
elimina() deleteOne() Șterge primul document care corespunde filtrului
elimina() ștergeMulți() Șterge fiecare document care corespunde filtrului

Pentru aplicațiile noi, preferați aceste metode moderne. Acestea separă numărarea de estimare și ștergerea unui document de ștergerea mai multor documente, ceea ce face ca interogările să fie mai sigure și mai ușor de citit. Funcțiile count() și remove() vechi funcționează în continuare pentru tutorialele și scripturile mai vechi.

Întrebări frecvente

`remove()` șterge documentele, dar păstrează colecția și indexurile acesteia. `drop()` șterge întreaga colecție, inclusiv fiecare document și index. Folosește `remove` pentru date și `drop` pentru a elimina complet colecția.

Nu. Funcția remove() șterge doar documentele din cadrul colecției. Colecția, indexurile și configurația acesteia rămân la locul lor, astfel încât puteți insera documente noi în aceeași colecție ulterior, fără a o recrea.

Funcția count() moștenită poate returna o valoare aproximativă pentru clusterele fragmentate după operațiuni eșuate. Pentru un total exact, utilizați countDocuments(), care rulează o agregare; utilizați estimatedDocumentCount() atunci când viteza contează mai mult decât precizia.

Inteligența artificială poate traduce o cerere simplă în numărul corect sau o interogare de ștergere cu filtrul potrivit și vă poate avertiza când o comandă de eliminare ar afecta fiecare document. Verificați-o întotdeauna înainte de a o rula.

Da. Inteligența artificială poate revizui o comandă remove sau deleteMany, poate semnala un filtru lipsă care ar șterge întreaga colecție și poate sugera adăugarea unei condiții sau realizarea unei copii de rezervă înainte de a o rula.

Rezumați această postare cu: