Count() & Remove() Fungerar i MongoDB med exempel

โšก Smart sammanfattning

Funktionerna Count() och Remove() i MongoDB rapporterar hur mรฅnga dokument en samling innehรฅller och tar bort dokument frรฅn den. Metoden count() returnerar dokumenttotalen, medan metoden remove() tar bort alla dokument eller endast de som matchar ett angivet villkor.

  • ๐Ÿ”ข Rรคkna dokument: Metoden count() returnerar antalet dokument i en samling eller som matchar en frรฅga.
  • ๐ŸŽฏ Rรคkna med filter: Att skicka ett villkor till count() rapporterar endast de dokument som uppfyller det.
  • ๐Ÿ—‘๏ธ Ta bort dokument: Metoden remove() tar bort dokument, antingen alla eller de som matchar ett kriterieobjekt.
  • โ˜๏ธ Ta bort en: Alternativet justOne begrรคnsar remove() till att ta bort ett enskilt matchande dokument istรคllet fรถr alla matchningar.
  • ๐Ÿ”„ Moderna metoder: countDocuments() och deleteMany() รคr de nuvarande ersรคttningarna fรถr de fรถrรฅldrade count() och remove().
  • ๐Ÿ–จ๏ธ Verifiera utdata: Varje kommando returnerar ett resultat som visar antalet borttagna dokument.

Count() & Remove() Fungerar i MongoDB

MongoDB Count() Funktion

Konceptet med aggregering รคr att utfรถra en berรคkning av resultaten som returneras i en frรฅga. Anta till exempel att du ville veta hur mรฅnga dokument som finns i en samling enligt den frรฅga som skickades. MongoDB tillhandahรฅller funktionen count().

Exempel pรฅ MongoDB Count() Funktion

Lรฅt oss titta pรฅ ett exempel pรฅ detta.

db.Employee.count()

Code Fรถrklaring:

  • Ovanstรฅende kod utfรถr rรคknefunktionen.

Om kommandot utfรถrs framgรฅngsrikt kommer fรถljande utdata att visas

Produktion:

Exempel pรฅ MongoDB Count() Funktion

Utgรฅngen visar tydligt att 4 dokument finns i samlingen.

MongoDB Rรคkna med ett frรฅgevillkor

Metoden count() รคr mest anvรคndbar nรคr du skickar ett frรฅgevillkor, sรฅ den rรคknar bara de dokument som matchar istรคllet fรถr hela samlingen. Detta รคr anvรคndbart fรถr rapporter, till exempel hur mรฅnga anstรคllda som tillhรถr en avdelning eller hur mรฅnga ordrar som fortfarande รคr รถppna.

Fรถljande exempel rรคknar de anstรคllda vars Employee-id รคr stรถrre รคn 2:

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

Hรคr รคr vad som hรคnder:

  • Frรฅgeobjektet {Employeeid:{$gt:2}} fungerar som ett filter med hjรคlp av operatorn $gt (stรถrre รคn).
  • count() returnerar endast antalet dokument som uppfyller filtret.
  • Resten av samlingen ignoreras i totalen.

I nuvarande MongoDB versioner, countDocuments() รคr den rekommenderade metoden fรถr ett villkorligt antal, eftersom den alltid returnerar ett korrekt resultat. Samma frรฅga fungerar med den:

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

Bรฅda kommandona returnerar ett enda tal, som du kan lagra i en variabel eller visa direkt. Att lรคgga till ett matchande index i det efterfrรฅgade fรคltet hรฅller villkorliga rรคkningar snabba pรฅ stora samlingar.

Utfรถra รคndringar

De tvรฅ andra verksamhetsklasserna i MongoDB รคr uppdateringen och ta bort uttalanden.

Uppdateringsoperationerna tillรฅter en att modifiera befintliga data, och borttagningsoperationerna tillรฅter radering av data frรฅn en samling.

Remove() Funktion i MongoDB

In MongoDB, den db.collection.remove() metod anvรคnds fรถr att ta bort dokument frรฅn en samling. Antingen kan alla dokument tas bort frรฅn en samling eller bara de som matchar ett specifikt villkor.

Om du bara utfรคrdar kommandot remove kommer alla dokument att tas bort frรฅn samlingen.

Exempel pรฅ MongoDB Remove() Funktion

Fรถljande kodexempel visar hur man tar bort ett specifikt dokument frรฅn samlingen.

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

Code Fรถrklaring:

  • Ovanstรฅende kod anvรคnder borttagningsfunktionen och specificerar kriterierna som i detta fall รคr att ta bort de dokument som har anstรคllds-id som 22.

Om kommandot utfรถrs framgรฅngsrikt kommer fรถljande utdata att visas

Produktion:

Exempel pรฅ MongoDB Remove() Funktion

Utdata visar att 1 dokument har tagits bort.

Ta bort alla dokument kontra ett enda dokument

Metoden remove() kan ta bort alla matchande dokument eller bara ett, beroende pรฅ vilka argument du skickar. Att fรถrstรฅ skillnaden fรถrhindrar oavsiktlig datafรถrlust.

Fรถr att ta bort alla dokument i en samling, skicka ett tomt villkor:

db.Employee.remove({})

Detta tar bort alla dokument men sjรคlva samlingen behรฅlls. Fรถr att bara ta bort dokument som matchar ett villkor, skicka ett frรฅgeobjekt, som visats tidigare med {Employeeid:22}. Om flera dokument matchar och du bara vill ta bort det fรถrsta, lรคgg till alternativet justOne:

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

De viktigaste skillnaderna รคr:

  • remove({}) tar bort alla dokument i samlingen.
  • remove({condition}) tar bort alla dokument som matchar villkoret.
  • remove({condition}, {justOne:true}) tar bara bort det fรถrsta matchande dokumentet.

Dubbelkolla alltid villkoret innan du kรถr ett remove-kommando, eftersom ett tomt eller felaktigt filter kan rensa hela samlingen. MongoDB, deleteOne() och deleteMany() ersรคtter dessa mรถnster och gรถr avsikten tydligare.

Moderna alternativ till count() och remove()

Bรฅde count() och remove() รคr รคldre metoder. Nyare MongoDB Drivrutiner markerar dem som fรถrรฅldrade och ger tydligare ersรคttningar. Tabellen nedan mappar varje gammal metod till dess moderna motsvarighet:

ร„ldre metod Modern ersรคttning Syfte
rรคkna() countDocuments() Returnerar ett korrekt antal matchande dokument
rรคkna() uppskattatDokumentAntal() Returnerar ett snabbt, ungefรคrligt antal dokument
avlรคgsna() deleteOne() Tar bort det fรถrsta dokumentet som matchar filtret
avlรคgsna() deleteMany() Tar bort alla dokument som matchar filtret

Fรถr nya applikationer, fรถredra dessa moderna metoder. De separerar rรคkning frรฅn uppskattning och borttagning av ett dokument frรฅn borttagning av mรฅnga, vilket gรถr frรฅgor sรคkrare och lรคttare att lรคsa. De รคldre metoderna count() och remove() fungerar fortfarande fรถr รคldre handledningar och skript.

Vanliga frรฅgor

remove() tar bort dokument men behรฅller samlingen och dess index. drop() tar bort hela samlingen, inklusive alla dokument och index. Anvรคnd remove fรถr data och drop fรถr att ta bort samlingen helt.

Nej. remove() tar bara bort dokument inom samlingen. Samlingen, dess index och dess konfiguration finns kvar, sรฅ du kan infoga nya dokument i samma samling efterรฅt utan att รฅterskapa den.

Legacy count() kan returnera ett ungefรคrligt vรคrde pรฅ shardade kluster efter misslyckade operationer. Fรถr en exakt totalsumma, anvรคnd countDocuments(), som kรถr en aggregering; anvรคnd estimatedDocumentCount() nรคr hastighet รคr viktigare รคn precision.

AI kan รถversรคtta en vanlig begรคran till rรคtt antals- eller borttagningsfrรฅga med rรคtt filter, och varna dig nรคr ett borttagningskommando pรฅverkar alla dokument. Granska alltid det innan du kรถr det.

Ja. AI kan granska ett remove- eller deleteMany-kommando, flagga ett saknat filter som skulle rensa hela samlingen och fรถreslรฅ att man lรคgger till ett villkor eller gรถr en sรคkerhetskopia innan det kรถrs.

Sammanfatta detta inlรคgg med: