MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Kopieren/Klonen Sie eine Datenbank in MongoDB

In früheren Versionen von MongoDB konnten Sie die copyDB verwenden Befehl oder seine Hilfsmethode db.copyDatabase() eine Datenbank zu kopieren.

MongoDB hat diese inzwischen als veraltet markiert. Außerdem hat MongoDB ab Version 4.2 die copydb entfernt Befehl und damit auch die db.copyDatabase() -Methode, was bedeutet, dass Sie sie nicht verwenden können, selbst wenn Sie wollten, wenn Sie MongoDB 4.2 oder höher verwenden.

Glücklicherweise gibt es eine andere Möglichkeit, eine MongoDB-Datenbank zu kopieren.

Suchen Sie nach MongoDB-Datenbanktools

In MongoDB können Sie eine Datenbank mit den MongoDB-Datenbanktools klonen. Insbesondere können Sie mongodump verwenden und mongorestore .

Die MongoDB-Datenbanktools sind eine Reihe von Befehlszeilendienstprogrammen für die Arbeit mit MongoDB.

Wenn Sie sich nicht sicher sind, ob Sie die MongoDB-Datenbanktools installiert haben, versuchen Sie, die folgenden Befehle in Ihrem Terminal oder Ihrer Eingabeaufforderung auszuführen, um dies zu überprüfen:

mongodump --version
mongorestore --version

Das sucht speziell nach mongodump und mongorestore Versionen.

Wenn Sie sie nicht haben, können Sie die Installationsanweisungen auf der MongoDB-Website verwenden, um die MongoDB-Datenbanktools auf Ihrem System zu installieren.

Beispiel für das Klonen einer Datenbank

Sie müssen mongodump ausführen und mongorestore über die Befehlszeile Ihres Systems (z. B. ein neues Terminal- oder Eingabeaufforderungsfenster). Führen Sie es nicht vom mongo aus Hülse.

Hier ist ein Codebeispiel, das eine Datenbank klont:

mongodump --archive --db=PetHotel | mongorestore --archive  --nsFrom='PetHotel.*' --nsTo='PetHouse.*'

In diesem Fall sichern wir das PetHotel Datenbank und stellen Sie dann alle ihre Sammlungen in einer Datenbank namens PetHouse wieder her . Mit anderen Worten, wir haben das PetHotel geklont Datenbank als PetHouse .

Dies verwendet mongodump um eine Sicherungsdatei der Datenbank zu erstellen, dann mongorestore um diese Datenbank unter einem anderen Namen wiederherzustellen. Wir haben dies getan, indem wir die Datenbank in den Standardausgabestrom ausgegeben und in mongorestore geleitet haben .

Hier ist, was jeder Parameter tut:

Parameter Beschreibung
--archive Schreibt die Ausgabe in eine angegebene Archivdatei oder, wenn die Archivdatei nicht angegeben ist, in die Standardausgabe (stdout ). In unserem Fall ist die Archivdatei nicht spezifiziert, also hat sie auf die Standardausgabe geschrieben.
--db Gibt eine zu sichernde Datenbank an. In diesem Fall sichern wir das PetHotel Datenbank.
--nsFrom Gibt die Sammlung in der Dump-Datei an. Der Stern-Platzhalter (* ) gibt alle Sammlungen an.
--nsTo Gibt den Sammlungsnamen an, der in der wiederhergestellten Datenbank verwendet werden soll.

Sie können auch mongodump verwenden alle Datenbanken zu dumpen. Führen Sie dazu einfach mongodump aus ohne Argumente. Wenn Sie dies tun, enthält es jedoch nicht den local und config Datenbanken in seinem Dump.