Count() & Remove() Functies in MongoDB met Voorbeeld

⚡ Slimme samenvatting

De functies Count() en Remove() in MongoDB Rapporteer hoeveel documenten een verzameling bevat en verwijder documenten uit die verzameling. De `count()`-methode retourneert het totale aantal documenten, terwijl de `remove()`-methode alle documenten verwijdert of alleen de documenten die aan een bepaalde voorwaarde voldoen.

  • 🔢 Tel documenten: De `count()`-methode retourneert het aantal documenten in een verzameling of het aantal documenten dat overeenkomt met een zoekopdracht.
  • 🎯 Aantal met filter: Als je een voorwaarde doorgeeft aan count(), worden alleen de documenten weergegeven die aan die voorwaarde voldoen.
  • 🗑️ Documenten verwijderen: De remove()-methode verwijdert documenten, ofwel alle documenten, ofwel alleen de documenten die aan een bepaald criteriumobject voldoen.
  • ☝️ Verwijder er één: De optie justOne beperkt remove() tot het verwijderen van slechts één overeenkomend document in plaats van alle overeenkomende documenten.
  • 🔄 Moderne methoden: countDocuments() en deleteMany() zijn de huidige vervangingen voor de verouderde count() en remove().
  • 🖨️ Controleer de uitvoer: Elke opdracht geeft een resultaat terug dat het aantal verwijderde documenten weergeeft.

Count() & Remove() Functies in MongoDB

MongoDB Count()-functie

Het concept van aggregatie is het uitvoeren van een berekening op de resultaten die in een query worden geretourneerd. Stel dat u bijvoorbeeld wilt weten wat het aantal documenten in een verzameling is volgens de geactiveerde query MongoDB biedt de functie count().

Voorbeeld MongoDB Count()-functie

Laten we een voorbeeld hiervan bekijken.

db.Employee.count()

Code Uitleg:

  • De bovenstaande code voert de telfunctie uit.

Als de opdracht succesvol is uitgevoerd, wordt de volgende uitvoer weergegeven

Output:

Voorbeeld MongoDB Count()-functie

Uit de uitvoer blijkt duidelijk dat er 4 documenten in de collectie aanwezig zijn.

MongoDB Tellen met een queryvoorwaarde

De `count()`-methode is vooral handig wanneer je een queryvoorwaarde doorgeeft, zodat alleen de documenten worden geteld die aan de voorwaarde voldoen in plaats van de hele collectie. Dit is nuttig voor rapporten, bijvoorbeeld over het aantal medewerkers van een afdeling of het aantal openstaande bestellingen.

Het volgende voorbeeld telt de werknemers waarvan het Employeeid groter is dan 2:

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

Dit is wat er gebeurt:

  • Het queryobject {Employeeid:{$gt:2}} fungeert als filter en maakt gebruik van de operator $gt (groter dan).
  • count() retourneert alleen het aantal documenten dat aan het filter voldoet.
  • De rest van de collectie wordt in het totaal niet meegerekend.

In de huidige MongoDB Voor versies is `countDocuments()` de aanbevolen methode voor een voorwaardelijke telling, omdat deze altijd een nauwkeurig resultaat oplevert. Dezelfde query werkt ermee:

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

Beide commando's retourneren één enkel getal, dat u in een variabele kunt opslaan of direct kunt weergeven. Door een overeenkomende index toe te voegen aan het opgevraagde veld, blijven voorwaardelijke tellingen snel, zelfs bij grote verzamelingen.

Wijzigingen uitvoeren

De andere twee soorten operaties in MongoDB zijn de update- en verwijderinstructies.

Met de updatebewerkingen kunt u bestaande gegevens wijzigen en met de verwijderbewerkingen kunt u gegevens uit een verzameling verwijderen.

Remove() Functie in MongoDB

In MongoDB db.collection.remove() Deze methode wordt gebruikt om documenten uit een collectie te verwijderen. U kunt óf alle documenten uit een collectie verwijderen, óf alleen de documenten die aan een specifieke voorwaarde voldoen.

Als u alleen maar de verwijderopdracht geeft, worden alle documenten uit de collectie verwijderd.

Voorbeeld MongoDB Functie Verwijderen().

Het volgende codevoorbeeld laat zien hoe u een specifiek document uit de verzameling verwijdert.

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

Code Uitleg:

  • De bovenstaande code gebruikt de verwijderfunctie en specificeert de criteria die in dit geval het verwijderen van de documenten met de werknemers-ID 22 zijn.

Als de opdracht succesvol is uitgevoerd, wordt de volgende uitvoer weergegeven

Output:

Voorbeeld MongoDB Functie Verwijderen().

De uitvoer zal laten zien dat er 1 document is verwijderd.

Alle documenten verwijderen versus een enkel document verwijderen

De remove()-methode kan alle overeenkomende documenten verwijderen of slechts één, afhankelijk van de argumenten die u doorgeeft. Inzicht in dit verschil voorkomt onbedoeld gegevensverlies.

Om alle documenten in een verzameling te verwijderen, geef je een lege voorwaarde door:

db.Employee.remove({})

Hiermee worden alle documenten verwijderd, maar de collectie zelf blijft behouden. Om alleen documenten te verwijderen die aan een bepaalde voorwaarde voldoen, geeft u een query-object door, zoals eerder getoond met {Employeeid:22}. Als meerdere documenten aan de voorwaarde voldoen en u alleen het eerste document wilt verwijderen, voegt u de optie justOne toe:

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

De belangrijkste verschillen zijn:

  • remove({}) verwijdert alle documenten in de verzameling.
  • remove({condition}) verwijdert alle documenten die aan de voorwaarde voldoen.
  • remove({condition}, {justOne:true}) verwijdert alleen het eerste overeenkomende document.

Controleer altijd de voorwaarde voordat u een verwijderingsopdracht uitvoert, want een leeg of onjuist filter kan de hele verzameling wissen. In moderne MongoDBDe functies deleteOne() en deleteMany() vervangen deze patronen en maken de bedoeling duidelijker.

Moderne alternatieven voor count() en remove()

Zowel count() als remove() zijn verouderde methoden. Nieuwere MongoDB Bestuurders markeren ze als verouderd en bieden duidelijkere alternatieven aan. De onderstaande tabel koppelt elke oude methode aan het moderne equivalent:

Legacy-methode Moderne vervanging Doel
tellen () countDocuments() Geeft een nauwkeurig aantal overeenkomende documenten terug.
tellen () geschatDocumentAantal() Geeft een snelle, geschatte telling van alle documenten terug.
verwijderen() verwijderEen() Verwijdert het eerste document dat aan het filter voldoet.
verwijderen() deleteMany() Verwijdert alle documenten die aan het filter voldoen.

Voor nieuwe toepassingen is het aan te raden deze moderne methoden te gebruiken. Ze scheiden tellen van schatten en het verwijderen van één document van het verwijderen van meerdere documenten, waardoor query's veiliger en leesbaarder worden. De oudere functies `count()` en `remove()` werken nog steeds voor oudere tutorials en scripts.

Veelgestelde vragen

`remove()` verwijdert documenten, maar behoudt de collectie en de bijbehorende indexen. `drop()` verwijdert de hele collectie, inclusief alle documenten en indexen. Gebruik `remove` voor data en `drop` om de collectie volledig te verwijderen.

Nee. `remove()` verwijdert alleen documenten binnen de collectie. De collectie, de indexen en de configuratie blijven behouden, zodat u daarna nieuwe documenten aan dezelfde collectie kunt toevoegen zonder deze opnieuw aan te maken.

De legacy count()-functie kan op gesharde clusters na mislukte bewerkingen een benaderende waarde retourneren. Voor een exact totaal gebruikt u countDocuments(), die een aggregatie uitvoert; gebruik estimatedDocumentCount() wanneer snelheid belangrijker is dan precisie.

AI kan een eenvoudig verzoek vertalen naar de juiste tel- of verwijderingsquery met het juiste filter en u waarschuwen wanneer een verwijderingsopdracht alle documenten zou beïnvloeden. Controleer het altijd voordat u het uitvoert.

Ja. AI kan een remove- of deleteMany-opdracht beoordelen, een ontbrekend filter signaleren dat de hele verzameling zou wissen, en voorstellen om een ​​voorwaarde toe te voegen of een back-up te maken voordat de opdracht wordt uitgevoerd.

Vat dit bericht samen met: