Löschen oder löschen Sie eine Sammlung in einer MongoDB-Datenbank

Tahseen Tauseef 15 Februar 2024
  1. MongoDB Sammlungen löschen
  2. Verwenden Sie die drop()-Methode
  3. Verwenden Sie die remove()-Methode
  4. Sammlungen in MongoDB löschen
  5. Sammlung mit der drop()-Methode löschen
  6. Löschen Sie alle Dokumente aus der Sammlung mit der Methode remove()
  7. Verwenden Sie die Befehlszeile, um die Datenbank in MongoDB zu löschen
Löschen oder löschen Sie eine Sammlung in einer MongoDB-Datenbank

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.

  1. Die Funktion db.collection.drop() und der Befehl drop generieren ein invalidate-Ereignis für alle Änderungsströme, die in der verworfenen Sammlung geöffnet sind.

  2. Die Methode db.collection.drop() und der Befehl drop 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.

  3. Ab MongoDB 4.0.2 werden durch das Entfernen einer Sammlung die verbundenen Zonen-/Tag-Bereiche gelöscht.

  4. Seit MongoDB 5.0 geben der drop-Befehl und die db.collection.drop()-Methode einen Fehler zurück, wenn Sie versuchen, eine Sammlung in der Admin-Datenbank oder der Konfigurationsdatenbank von einem mongos 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():

  1. query - Ein query-Operator wird verwendet, um Löschkriterien bereitzustellen. Übergeben Sie beispielsweise ein leeres document (), werden alle Dokumente in einer Sammlung gelöscht.
  2. justOne - Bei true wird die Löschung auf nur ein Dokument beschränkt. Entfernen Sie alle Dokumente, die dem Löschkriterium entsprechen, ohne den Standardwert false zu verwenden.
  3. writeConcern - Ein Dokument drückt die schriftliche Sorge aus. Lassen Sie die Vorgabe writeconcern 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.

  1. Stimmt
  2. 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.

fallen 1

Wenn Sie eine neue Datenbank mydb> löschen möchten, verwenden Sie den Befehl dropDatabase().

fallen 2

Die Checkliste der Datenbanken.

fallen 3

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.

1 entfernen

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.

entfernen 2

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.

Befehl

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.