Count() & Remove() Funktionen in MongoDB mit Beispiel
⚡ Intelligente Zusammenfassung
Die Funktionen Count() und Remove() in MongoDB Ermitteln Sie die Anzahl der Dokumente in einer Sammlung und löschen Sie Dokumente daraus. Die Methode `count()` gibt die Gesamtzahl der Dokumente zurück, während die Methode `remove()` entweder alle Dokumente oder nur diejenigen löscht, die einer bestimmten Bedingung entsprechen.

MongoDB Count()-Funktion
Das Konzept der Aggregation besteht darin, eine Berechnung der Ergebnisse durchzuführen, die in einer Abfrage zurückgegeben werden. Angenommen, Sie möchten beispielsweise wissen, wie viele Dokumente sich in einer Sammlung gemäß der ausgelösten Abfrage befinden MongoDB stellt die Funktion count() bereit.
Beispiel von MongoDB Count()-Funktion
Schauen wir uns dazu ein Beispiel an.
db.Employee.count()
Code Erläuterung:
- Der obige Code führt die Zählfunktion aus.
Wenn der Befehl erfolgreich ausgeführt wurde, wird die folgende Ausgabe angezeigt
Ausgang:
Die Ausgabe zeigt deutlich, dass 4 Dokumente in der Sammlung vorhanden sind.
MongoDB Zählen mit einer Abfragebedingung
Die Methode `count()` ist besonders nützlich, wenn Sie eine Abfragebedingung übergeben, da sie dann nur die übereinstimmenden Dokumente zählt, anstatt die gesamte Sammlung. Dies ist hilfreich für Berichte, beispielsweise zur Anzahl der Mitarbeiter einer Abteilung oder zur Anzahl der noch offenen Bestellungen.
Das folgende Beispiel zählt die Mitarbeiter, deren Mitarbeiter-ID größer als 2 ist:
db.Employee.count({Employeeid:{$gt:2}})
Hier ist was passiert:
- Das Abfrageobjekt {Employeeid:{$gt:2}} fungiert als Filter und verwendet den Operator $gt (größer als).
- Die Funktion count() gibt nur die Anzahl der Dokumente zurück, die dem Filter entsprechen.
- Der Rest der Sammlung wird bei der Gesamtberechnung nicht berücksichtigt.
Im aktuellen MongoDB Bei allen Versionen ist `countDocuments()` die empfohlene Methode für eine bedingte Zählung, da sie stets ein korrektes Ergebnis liefert. Dieselbe Abfrage funktioniert auch damit:
db.Employee.countDocuments({Employeeid:{$gt:2}})
Beide Befehle geben eine einzelne Zahl zurück, die Sie in einer Variablen speichern oder direkt anzeigen können. Durch Hinzufügen eines passenden Index für das abgefragte Feld bleiben bedingte Zählungen auch bei großen Sammlungen schnell.
Durchführung von Änderungen
Die anderen beiden Operationsklassen in MongoDB sind die Update- und Remove-Anweisungen.
Mit den Aktualisierungsvorgängen können vorhandene Daten geändert werden, und mit den Entfernungsvorgängen können Daten aus einer Sammlung gelöscht werden.
Remove() Funktion in MongoDB
In MongoDB, hat das db.collection.remove() Die Methode wird verwendet, um Dokumente aus einer Sammlung zu entfernen. Es können entweder alle Dokumente aus einer Sammlung entfernt werden oder nur diejenigen, die einer bestimmten Bedingung entsprechen.
Wenn Sie einfach den Befehl zum Entfernen ausführen, werden alle Dokumente aus der Sammlung entfernt.
Beispiel von MongoDB Remove()-Funktion
Das folgende Codebeispiel zeigt, wie ein bestimmtes Dokument aus der Sammlung entfernt wird.
db.Employee.remove({Employeeid:22})
Code Erläuterung:
- Der obige Code verwendet die Remove-Funktion und gibt die Kriterien an, die in diesem Fall darin bestehen, die Dokumente zu entfernen, die die Mitarbeiter-ID 22 haben.
Wenn der Befehl erfolgreich ausgeführt wurde, wird die folgende Ausgabe angezeigt
Ausgang:
Die Ausgabe zeigt an, dass 1 Dokument entfernt wurde.
Alle Dokumente entfernen vs. nur ein einzelnes Dokument
Die Methode `remove()` kann je nach den übergebenen Argumenten entweder alle übereinstimmenden Dokumente oder nur ein einzelnes löschen. Das Verständnis dieses Unterschieds verhindert versehentlichen Datenverlust.
Um alle Dokumente in einer Sammlung zu entfernen, übergeben Sie eine leere Bedingung:
db.Employee.remove({})
Dadurch werden alle Dokumente gelöscht, die Sammlung selbst bleibt jedoch erhalten. Um nur Dokumente zu entfernen, die einer bestimmten Bedingung entsprechen, übergeben Sie ein Abfrageobjekt, wie zuvor mit {Employeeid:22} gezeigt. Wenn mehrere Dokumente übereinstimmen und Sie nur das erste löschen möchten, fügen Sie die Option „justOne“ hinzu.
db.Employee.remove({EmployeeName:"Smith"}, {justOne:true})
Die Hauptunterschiede sind:
- remove({}) löscht alle Dokumente in der Sammlung.
- remove({Bedingung}) löscht jedes Dokument, das der Bedingung entspricht.
- remove({condition}, {justOne:true}) löscht nur das erste übereinstimmende Dokument.
Überprüfen Sie die Bedingung immer doppelt, bevor Sie einen Löschbefehl ausführen, da ein leerer oder falscher Filter die gesamte Sammlung löschen kann. In modernen Systemen MongoDBdeleteOne() und deleteMany() ersetzen diese Muster und machen die Absicht deutlicher.
Moderne Alternativen zu count() und remove()
Sowohl count() als auch remove() sind veraltete Methoden. Neuere MongoDB Die Treiber kennzeichnen sie als veraltet und bieten klarere Alternativen an. Die folgende Tabelle ordnet jeder alten Methode ihre moderne Entsprechung zu:
| Legacy-Methode | Moderner Ersatz | Zweck |
|---|---|---|
| Anzahl () | countDocuments() | Gibt eine genaue Anzahl übereinstimmender Dokumente zurück. |
| Anzahl () | geschätzteDokumentenanzahl() | Gibt eine schnelle, ungefähre Anzahl aller Dokumente zurück. |
| entfernen() | deleteOne() | Löscht das erste Dokument, das dem Filter entspricht. |
| entfernen() | deleteMany() | Löscht alle Dokumente, die dem Filter entsprechen. |
Für neue Anwendungen sind diese modernen Methoden vorzuziehen. Sie trennen das Zählen von der Schätzung und das Löschen eines einzelnen Dokuments vom Löschen mehrerer Dokumente, wodurch Abfragen sicherer und lesbarer werden. Die älteren Funktionen `count()` und `remove()` funktionieren weiterhin für ältere Tutorials und Skripte.


