Funkcije Count() & Remove() u MongoDB s Primjerom

⚡ Pametni sažetak

Funkcije Count() i Remove() u MongoDB prijaviti koliko dokumenata kolekcija sadrži i izbrisati dokumente iz nje. Metoda count() vraća ukupan broj dokumenata, dok metoda remove() briše sve dokumente ili samo one koji odgovaraju određenom uvjetu.

  • 🔢 Broj dokumenata: Metoda count() vraća broj dokumenata u kolekciji ili onih koji odgovaraju upitu.
  • 🎯 Brojanje s filterom: Prosljeđivanje uvjeta funkciji count() prikazuje samo dokumente koji ga zadovoljavaju.
  • 🗑️ Ukloni dokumente: Metoda remove() briše dokumente, bilo sve ili one koji odgovaraju zadanom kriteriju.
  • ☝️ Ukloni jedan: Opcija justOne ograničava remove() na brisanje jednog odgovarajućeg dokumenta umjesto svih podudaranja.
  • 🔄 Moderne metode: countDocuments() i deleteMany() su trenutne zamjene za zastarjele count() i remove().
  • 🖨️ Provjerite izlaz: Svaka naredba vraća rezultat koji prikazuje broj ili broj uklonjenih dokumenata.

Funkcije Count() & Remove() u MongoDB

MongoDB Funkcija Count().

Koncept agregacije je izvođenje računanja rezultata koji se vraćaju u upitu. Na primjer, pretpostavimo da želite znati koliki je broj dokumenata u zbirci prema pokrenutom upitu, a zatim MongoDB pruža funkciju count().

Primjer MongoDB Funkcija Count().

Pogledajmo primjer ovoga.

db.Employee.count()

Code Objašnjenje:

  • Gornji kod izvršava funkciju brojanja.

Ako je naredba uspješno izvršena, prikazat će se sljedeći izlaz

Izlaz:

Primjer MongoDB Funkcija Count().

Izlaz jasno pokazuje da se u zbirci nalaze 4 dokumenta.

MongoDB Brojanje s uvjetom upita

Metoda count() je najkorisnija kada prosljeđujete uvjet upita, pa broji samo dokumente koji se podudaraju umjesto cijele kolekcije. To je korisno za izvješća, poput broja zaposlenika koji pripadaju odjelu ili broja narudžbi koje su još uvijek otvorene.

Sljedeći primjer broji zaposlenike čiji je Employeeid veći od 2:

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

Evo što se događa:

  • Objekt upita {Employeeid:{$gt:2}} djeluje kao filter, koristeći operator $gt (veće od).
  • count() vraća samo broj dokumenata koji zadovoljavaju filter.
  • Ostatak kolekcije se zanemaruje u ukupnom zbroju.

U tekućem MongoDB verzije, countDocuments() je preporučena metoda za uvjetno brojanje, jer uvijek vraća točan rezultat. Isti upit radi s njom:

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

Obje naredbe vraćaju jedan broj koji možete pohraniti u varijablu ili izravno prikazati. Dodavanje odgovarajućeg indeksa upitnom polju održava uvjetno brojanje brzim na velikim kolekcijama.

Izvođenje izmjena

Druge dvije klase operacija u MongoDB su izjave za ažuriranje i uklanjanje.

Operacije ažuriranja omogućuju izmjenu postojećih podataka, a operacije uklanjanja omogućuju brisanje podataka iz zbirke.

Funkcija Remove() u MongoDB

In MongoDB je db.zbirka.ukloni() metoda se koristi za uklanjanje dokumenata iz zbirke. Iz zbirke se mogu ukloniti svi dokumenti ili samo oni koji odgovaraju određenom uvjetu.

Ako izdate samo naredbu za uklanjanje, svi će dokumenti biti uklonjeni iz zbirke.

Primjer MongoDB Funkcija Remove().

Sljedeći primjer koda pokazuje kako ukloniti određeni dokument iz zbirke.

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

Code Objašnjenje:

  • Gornji kod koristi funkciju uklanjanja i navodi kriterij koji je u ovom slučaju uklanjanje dokumenata koji imaju ID zaposlenika 22.

Ako je naredba uspješno izvršena, prikazat će se sljedeći izlaz

Izlaz:

Primjer MongoDB Funkcija Remove().

Izlaz će pokazati da je 1 dokument uklonjen.

Uklonite sve dokumente u odnosu na jedan dokument

Metoda remove() može izbrisati svaki odgovarajući dokument ili samo jedan, ovisno o argumentima koje prosljeđujete. Razumijevanje razlike sprječava slučajan gubitak podataka.

Za uklanjanje svakog dokumenta u kolekciji, proslijedite prazan uvjet:

db.Employee.remove({})

Ovo briše sve dokumente, ali zadržava samu kolekciju. Da biste uklonili samo dokumente koji odgovaraju uvjetu, proslijedite objekt upita, kao što je ranije prikazano s {Employeeid:22}. Ako se podudara nekoliko dokumenata i želite izbrisati samo prvi, dodajte opciju justOne:

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

Ključne razlike su:

  • remove({}) briše sve dokumente u kolekciji.
  • remove({condition}) briše svaki dokument koji odgovara uvjetu.
  • remove({condition}, {justOne:true}) briše samo prvi odgovarajući dokument.

Uvijek dvaput provjerite uvjet prije pokretanja naredbe za uklanjanje, jer prazan ili pogrešan filter može izbrisati cijelu kolekciju. U modernom MongoDB, deleteOne() i deleteMany() zamjenjuju ove obrasce i čine namjeru jasnijom.

Moderne alternative za count() i remove()

I count() i remove() su naslijeđene metode. Novije MongoDB Vozači ih označavaju kao zastarjele i nude jasnije zamjene. Tablica u nastavku prikazuje svaku staru metodu u odnosu na njezin moderni ekvivalent:

Naslijeđena metoda Moderna zamjena Svrha
računati() brojDokumenta() Vraća točan broj odgovarajućih dokumenata
računati() procijenjeni brojDokumenata() Vraća brz, približan broj svih dokumenata
ukloniti() deleteOne() Briše prvi dokument koji odgovara filteru
ukloniti() deleteMny() Briše svaki dokument koji odgovara filteru

Za nove aplikacije, preferirajte ove moderne metode. One odvajaju brojanje od procjene i brisanje jednog dokumenta od brisanja više njih, što upite čini sigurnijima i lakšima za čitanje. Naslijeđene funkcije count() i remove() i dalje rade za starije tutorijale i skripte.

Pitanja i odgovori

remove() briše dokumente, ali zadržava kolekciju i njezine indekse. drop() briše cijelu kolekciju, uključujući svaki dokument i indeks. Koristite remove za podatke i drop za potpuno odbacivanje kolekcije.

Ne. remove() briše samo dokumente unutar kolekcije. Kolekcija, njezini indeksi i konfiguracija ostaju na mjestu, tako da nakon toga možete umetnuti nove dokumente u istu kolekciju bez ponovnog stvaranja.

Naslijeđena funkcija count() može vratiti približnu vrijednost na fragmentiranim klasterima nakon neuspjelih operacija. Za točan ukupan iznos koristite countDocuments(), koja pokreće agregaciju; koristite estimatedDocumentCount() kada je brzina važnija od preciznosti.

Umjetna inteligencija može prevesti običan zahtjev u ispravan upit za brojanje ili brisanje s pravim filtrom i upozoriti vas kada bi naredba za uklanjanje utjecala na svaki dokument. Uvijek je pregledajte prije pokretanja.

Da. Umjetna inteligencija može pregledati naredbu remove ili deleteMany, označiti nedostajući filter koji bi izbrisao cijelu kolekciju i predložiti dodavanje uvjeta ili izradu sigurnosne kopije prije pokretanja.

Sažmite ovu objavu uz: