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: