Löschen oder löschen Sie eine Sammlung in einer MongoDB-Datenbank
- MongoDB Sammlungen löschen
-
Verwenden Sie die
drop()
-Methode -
Verwenden Sie die
remove()
-Methode - Sammlungen in MongoDB löschen
-
Sammlung mit der
drop()
-Methode löschen -
Löschen Sie alle Dokumente aus der Sammlung mit der Methode
remove()
- Verwenden Sie die Befehlszeile, um die Datenbank in MongoDB zu löschen
In diesem Artikel wird ausführlich auf das Problem des Löschens von Sammlungen in MongoDB eingegangen, und verschiedene Methoden, die in MongoDB zum Löschen von Sammlungen verwendet werden, werden mit ihren Abfragen erläutert.
MongoDB Sammlungen löschen
MongoDB löscht die Sammlung auf zwei Arten; die Ausgabe ist true
oder false
, nachdem der Befehl drop
auf dem MongoDB-Datenbankserver ausgeführt wurde. Das Ergebnis ist true
, wenn die Sammlung in der Datenbank existiert und erfolgreich entfernt wurde.
Wenn die Sammlung nicht in der Datenbank existiert und nicht entsprechend gelöscht werden kann, ist das Ergebnis false
.
Verwenden Sie die Methoden drop
und remove
, um eine Sammlung aus MongoDB zu löschen. Beim Deinstallieren einer Sammlung müssen Sie auch den Sammlungsnamen angeben.
Verwenden Sie die drop()
-Methode
Um eine Sammlung aus einer MongoDB-Datenbank zu löschen, verwenden Sie die Funktion db.collection.drop()
. Es entfernt eine Sammlung aus der Datenbank und löscht alle zugehörigen Indizes.
-
Die Funktion
db.collection.drop()
und der Befehldrop
generieren eininvalidate
-Ereignis für alle Änderungsströme, die in der verworfenen Sammlung geöffnet sind. -
Die Methode
db.collection.drop()
und der Befehldrop
stoppen einen laufenden Indexaufbau auf der Zielsammlung, bevor sie gelöscht werden. Der Versuch, eine Sammlung mit laufenden Indexerstellungen vor MongoDB 4.4 zu sichern, führt zu einem Fehler, aber die Sammlung wird nicht gelöscht.Durch das Abbrechen einer primären Indexerstellung werden sekundäre Indexerstellungen für Replikatsätze oder Shard-Replikatsätze nicht abgebrochen. Stattdessen versucht MongoDB, die laufenden Builds für die angegebenen Indizes auf dem primären Index zu stoppen, und erzeugt bei Erfolg ein Abort-Element
oplog
.Sekundäre Member mit replizierten, laufenden Builds warten darauf, dass der Main das
oplog
-Element festschreibt oder abbricht, bevor sie die Indexerstellung festschreiben oder abbrechen. -
Ab MongoDB 4.0.2 werden durch das Entfernen einer Sammlung die verbundenen Zonen-/Tag-Bereiche gelöscht.
-
Seit MongoDB 5.0 geben der
drop
-Befehl und diedb.collection.drop()
-Methode einen Fehler zurück, wenn Sie versuchen, eine Sammlung in der Admin-Datenbank oder der Konfigurationsdatenbank von einemmongos
zu löschen. Stellen Sie stattdessen eine Verbindung zum Konfigurationsserver her und führen Sie den Befehl aus, um diese Sammlungen zu löschen.
Syntax:
db.collection_database.drop()
Die Sammlungsdatenbank wird als Name der Sammlung in der obigen Syntax angegeben, die verwendet wird, um sie vom Datenbankserver zu entfernen.
Verwenden Sie die remove()
-Methode
Um Dokumente aus einer Sammlung zu löschen, verwenden Sie die Funktion db.collection.remove()
.
Syntax:
db.collection_database.remove ({})
Die Sammlungsdatenbank ist in der vorstehenden Syntax als der Speicherort definiert, aus dem die Dokumente entfernt werden müssen. Wenn Sie also die Methode remove
mit einer leeren Ergebnismenge ()
angeben, werden alle Sammlungsdatensätze gelöscht.
db.collection_name.remove (<query>, {Writeconcern, justone})
Der Parameter query
ist definiert als die Möglichkeit, einzelne Elemente aus einer Sammlung in Abhängigkeit von den Parametern der Abfrage zu entfernen.
Es ist nur ein Parameter definiert, der ein Dokument aus der Sammlung löscht. Es muss aktiviert werden, indem das Schlüsselwort auf true
gesetzt wird.
Nach Verwendung des Schlüsselworts true
im Auswahlkriterium wird nur ein Datensatz eliminiert. Wenn Sie in unseren Auswahlkriterien nicht das Schlüsselwort true
verwendet haben, würden Sie alle Artikel in der Sammlung löschen.
Bei Verwendung von Writeconcern
wird die Standardverwendung von writeconcern
umgangen.
Parameter der Methode remove()
:
query
- Einquery
-Operator wird verwendet, um Löschkriterien bereitzustellen. Übergeben Sie beispielsweise ein leeresdocument ()
, werden alle Dokumente in einer Sammlung gelöscht.justOne
- Beitrue
wird die Löschung auf nur ein Dokument beschränkt. Entfernen Sie alle Dokumente, die dem Löschkriterium entsprechen, ohne den Standardwertfalse
zu verwenden.writeConcern
- Ein Dokument drückt die schriftliche Sorge aus. Lassen Sie die Vorgabewriteconcern
weg.
Sammlungen in MongoDB löschen
Wenn Sie die gesamte Sammlung und ihre Indizes entfernen möchten, können Sie die Methode drop
verwenden, um eine beliebige Sammlung aus der Datenbank zu löschen, einschließlich ihrer Indizes. Der drop
-Ansatz löscht die Sammlung und ihre Indizes vom Datenbankserver.
Mit dem Entfernen
-Ansatz können Sie bestimmte Dokumente aus der Sammlung entfernen. Die Methode remove
löscht alle Dokumente in der Sammlung, aber die Indizes verbleiben auf dem Datenbankserver und werden nicht gelöscht.
Nach dem Entfernen einer Sammlung vom Datenbankserver werden zwei Ergebnissätze angezeigt.
- Stimmt
- Falsch
Die folgende Abfrage zeigt, dass die Ergebnismenge den Wert true
anzeigt, wenn eine Sammlung vom Datenbankserver gelöscht wird. Das folgende Abfrageergebnis ist beispielsweise true
.
Die Ergebnismenge zeigt true
, da der Datenbankserver die Sammlung gelöscht hat.
show collections
db.test1.drop()
show collections
Das obige Abfrageergebnis ist false
. Die Ausgabe in der Ergebnismenge ist false
, da die Sammlung nicht vom Datenbankserver entfernt wurde oder nicht in der Datenbank existiert.
Sie müssen zuerst eine Verbindung mit der betreffenden Datenbank herstellen, bevor Sie eine Sammlung daraus entfernen. Die Sammlung wird nicht gelöscht, wenn Sie sich nicht mit der angegebenen Datenbank verbunden oder diese besucht haben.
Die folgende Abfrage zeigt, wie die angegebene Datenbank verwendet wird, bevor die Sammlung aus der Datenbank entfernt wird.
db.col_stat.drop()
use test
db.col_stat.drop()
show collections
Im Folgenden werden nun beispielhafte Abfragen der Methoden remove
und drop
besprochen.
Sammlung mit der drop()
-Methode löschen
Verwenden Sie zuerst den Befehl show dbs
, um eine Liste der zugänglichen Datenbanken anzuzeigen.
Wenn Sie eine neue Datenbank mydb>
löschen möchten, verwenden Sie den Befehl dropDatabase()
.
Die Checkliste der Datenbanken.
Löschen Sie alle Dokumente aus der Sammlung mit der Methode remove()
Betrachten Sie die folgenden Daten aus dem mycol
-Datensatz.
{_id : ObjectId("507f191e810c19729de860e1"), title: "MongoDB Overview"},
{_id : ObjectId("507f191e810c19729de860e2"), title: "NoSQL Overview"},
{_id : ObjectId("507f191e810c19729de860e3"), title: "Tutorials Point Overview"}
Das folgende Beispiel löscht alle Datensätze mit MongoDB Overview
.
Entfernen Sie nur einen
Wenn es mehrere Datensätze gibt und Sie den ersten löschen möchten, verwenden Sie die Option justOne
in der Funktion remove()
.
>db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
Alle Dokumente entfernen
MongoDB entfernt ganze Dokumente aus der Sammlung, wenn keine festgelegten Löschkriterien vorliegen. Dies ist das Gegenstück zum SQL-Befehl truncate
.
Nach db.mycol.find()
wird nichts angezeigt, da alle Daten aus Datenbanken entfernt werden.
Verwenden Sie die Befehlszeile, um die Datenbank in MongoDB zu löschen
Der einfachste Weg, Ihre Mongo-Datenbank zu löschen, besteht darin, den Shell-Befehl mongo
von der Befehlszeile aus auszuführen, zusammen mit den relevanten Flags und Parametern, um der mongo
-Shell mitzuteilen, dass Sie eine Datenbank löschen möchten.
Der einfachste Shell-Befehl mongo
kann verwendet werden, um sofort eine Verbindung zu einer bestimmten Datenbank herzustellen. In diesem Beispiel wird es verwendet, um von der Bash-Eingabeaufforderung unseres Servers aus eine Verbindung zur Datenbank bookstore
herzustellen.
$ mongo bookstore
MongoDB shell version: 3.0.9
connecting to: bookstore
Anstatt sich mit unserer bookstore
-Datenbank zu verbinden und Befehle von der mongo
-Shell auszuführen, können Sie das eval
-Flag gefolgt von dem JavaScript-Code angeben, den MongoDB ausführen soll. Unsere Datenbank kann problemlos in einer Zeile gedumpt werden.
Sie möchten die Datenbank in diesem Szenario löschen; Daher verwenden Sie die Funktion db.dropDatabase()
, um die Datenbank zu zerstören, mit der Sie verbunden sind. Obwohl es nicht erforderlich ist, werden Sie diese Methode mit der Funktion printjson
umschließen, um sicherzustellen, dass die Ausgabe dieses Befehls sinnvoll und verständlich ist.
Sie brauchen weder heredocs
noch eval
, mongo
kann als Dolmetscher fungieren.
var db = new Mongo().getDB('someDatabase');
db.dropDatabase();
In diesem Artikel wurde erklärt, wie man die drop
-Methode verwendet; Sie können die Sammlung und ihre Indizes löschen und die Methode remove
verwenden; Sie können einzelne oder alle Dokumente aus der Sammlung löschen.
Wenn die Sammlung in der Datenbank vorhanden ist, zeigt die Ergebnismenge das Ergebnis als true
an und zeigt eine falsche
Ausgabe an. Außerdem wird das Verwerfen oder Löschen einer Sammlung in MongoDB über die Befehlszeile erklärt.