Count() & Remove() Funksjoner i MongoDB med eksempel

โšก Smart oppsummering

Count()- og Remove()-funksjonene i MongoDB rapporterer hvor mange dokumenter en samling inneholder og sletter dokumenter fra den. count()-metoden returnerer dokumenttotalen, mens remove()-metoden sletter alle dokumenter eller bare de som samsvarer med en spesifisert betingelse.

  • ๐Ÿ”ข Antall dokumenter: count()-metoden returnerer antall dokumenter i en samling eller som samsvarer med en spรธrring.
  • ๐ŸŽฏ Tell med filter: Hvis en betingelse sendes til count(), rapporteres bare dokumentene som oppfyller den.
  • ๐Ÿ—‘๏ธ Fjern dokumenter: Metoden remove() sletter dokumenter, enten alle eller de som samsvarer med et kriterieobjekt.
  • โ˜๏ธ Fjern รฉn: justOne-alternativet begrenser remove() til รฅ slette ett enkelt samsvarende dokument i stedet for alle samsvarende dokumenter.
  • ๐Ÿ”„ Moderne metoder: countDocuments() og deleteMany() er de nรฅvรฆrende erstatningene for de utdaterte count() og remove().
  • ๐Ÿ–จ๏ธ Bekreft utdata: Hver kommando returnerer et resultat som viser antallet dokumenter som er fjernet.

Count() & Remove() Funksjoner i MongoDB

MongoDB Count() funksjon

Konseptet med aggregering er รฅ utfรธre en beregning av resultatene som returneres i en spรธrring. Anta for eksempel at du รธnsket รฅ vite hva antallet dokumenter er i en samling i henhold til sรธket som ble sendt, MongoDB gir funksjonen count().

Eksempel MongoDB Count() funksjon

La oss se pรฅ et eksempel pรฅ dette.

db.Employee.count()

Code Forklaring:

  • Koden ovenfor utfรธrer tellefunksjonen.

Hvis kommandoen utfรธres vellykket, vil fรธlgende utdata vises

Utgang:

Eksempel MongoDB Count() funksjon

Utgangen viser tydelig at 4 dokumenter er der i samlingen.

MongoDB Tell med en spรธrrebetingelse

count()-metoden er mest nyttig nรฅr du sender en spรธrrebetingelse, slik at den bare teller dokumentene som samsvarer i stedet for hele samlingen. Dette er nyttig for rapporter, for eksempel hvor mange ansatte som tilhรธrer en avdeling eller hvor mange ordrer som fortsatt er รฅpne.

Fรธlgende eksempel teller de ansatte med EmployeeID som er stรธrre enn 2:

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

Her er hva som skjer:

  • Spรธrreobjektet {Employeeid:{$gt:2}} fungerer som et filter ved hjelp av $gt-operatoren (stรธrre enn).
  • count() returnerer bare antall dokumenter som tilfredsstiller filteret.
  • Resten av samlingen ignoreres i totalen.

I nรฅvรฆrende MongoDB versjoner, countDocuments() er den anbefalte metoden for en betinget telling, fordi den alltid returnerer et nรธyaktig resultat. Den samme spรธrringen fungerer med den:

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

Begge kommandoene returnerer et enkelt tall, som du kan lagre i en variabel eller vise direkte. Ved รฅ legge til en samsvarende indeks i det forespurte feltet holder du betingede tellinger raske pรฅ store samlinger.

Utfรธre modifikasjoner

De to andre operasjonsklassene i MongoDB er oppdatering og fjern uttalelser.

Oppdateringsoperasjonene lar en endre eksisterende data, og fjerningsoperasjonene tillater sletting av data fra en samling.

Remove()-funksjonen i MongoDB

In MongoDBden db.collection.remove() metoden brukes til รฅ fjerne dokumenter fra en samling. Enten kan alle dokumentene fjernes fra en samling eller bare de som samsvarer med en bestemt betingelse.

Hvis du bare utsteder fjernkommandoen, vil alle dokumentene bli fjernet fra samlingen.

Eksempel MongoDB Fjern() funksjon

Fรธlgende kodeeksempel viser hvordan du fjerner et spesifikt dokument fra samlingen.

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

Code Forklaring:

  • Koden ovenfor bruker fjernfunksjonen og spesifiserer kriteriene som i dette tilfellet er รฅ fjerne dokumentene som har medarbeider-ID som 22.

Hvis kommandoen utfรธres vellykket, vil fรธlgende utdata vises

Utgang:

Eksempel MongoDB Fjern() funksjon

Resultatet vil vise at ett dokument ble fjernet.

Fjern alle dokumenter kontra et enkelt dokument

Metoden remove() kan slette alle samsvarende dokumenter eller bare ett, avhengig av argumentene du sender. ร… forstรฅ forskjellen forhindrer utilsiktet datatap.

For รฅ fjerne alle dokumenter i en samling, send en tom betingelse:

db.Employee.remove({})

Dette sletter alle dokumenter, men beholder selve samlingen. For รฅ bare fjerne dokumenter som samsvarer med en betingelse, send et spรธrreobjekt, som vist tidligere med {Employeeid:22}. Hvis flere dokumenter samsvarer og du bare vil slette det fรธrste, legg til justOne-alternativet:

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

De viktigste forskjellene er:

  • remove({}) sletter alle dokumentene i samlingen.
  • remove({condition}) sletter alle dokumenter som samsvarer med betingelsen.
  • remove({condition}, {justOne:true}) sletter bare det fรธrste samsvarende dokumentet.

Dobbeltsjekk alltid betingelsen fรธr du kjรธrer en fjern-kommando, fordi et tomt eller feil filter kan slette hele samlingen. I moderne MongoDB, deleteOne() og deleteMany() erstatter disse mรธnstrene og gjรธr intensjonen tydeligere.

Moderne alternativer til count() og remove()

Bรฅde count() og remove() er eldre metoder. Nyere MongoDB Drivere markerer dem som utdaterte og gir tydeligere erstatninger. Tabellen nedenfor kartlegger hver gamle metode til sin moderne ekvivalent:

Legacy-metoden Moderne erstatning Formรฅl
telle() antallDokumenter() Returnerer et nรธyaktig antall samsvarende dokumenter
telle() estimertDokumentantall() Returnerer et raskt, omtrentlig antall dokumenter
ta vekk() deleteOne() Sletter det fรธrste dokumentet som samsvarer med filteret
ta vekk() slettMange() Sletter alle dokumenter som samsvarer med filteret

For nye applikasjoner, foretrekk disse moderne metodene. De skiller telling fra estimering og sletting av ett dokument fra sletting av mange, noe som gjรธr spรธrringer tryggere og enklere รฅ lese. De eldre metodene count() og remove() fungerer fortsatt for eldre veiledninger og skript.

Spรธrsmรฅl og svar

remove() sletter dokumenter, men beholder samlingen og dens indekser. drop() sletter hele samlingen, inkludert alle dokumenter og indekser. Bruk remove for data og drop for รฅ forkaste samlingen fullstendig.

Nei. remove() sletter bare dokumenter i samlingen. Samlingen, dens indekser og konfigurasjon forblir pรฅ plass, slik at du kan sette inn nye dokumenter i den samme samlingen etterpรฅ uten รฅ opprette den pรฅ nytt.

Legacy count() kan returnere en omtrentlig verdi pรฅ sharded-klynger etter mislykkede operasjoner. For en nรธyaktig totalsum, bruk countDocuments(), som kjรธrer en aggregering; bruk estimatedDocumentCount() nรฅr hastighet er viktigere enn presisjon.

AI kan oversette en vanlig forespรธrsel til riktig antalls- eller sletteforespรธrsel med riktig filter, og advare deg nรฅr en fjerningskommando vil pรฅvirke alle dokumenter. Sjekk den alltid fรธr du kjรธrer den.

Ja. AI kan gjennomgรฅ en fjern- eller deleteMany-kommando, flagge et manglende filter som ville fjernet hele samlingen, og foreslรฅ รฅ legge til en betingelse eller ta en sikkerhetskopi fรธr den kjรธres.

Oppsummer dette innlegget med: