Kopieren eine Sammlung innerhalb derselben Datenbank in MongoDB
- Kopieren eine Sammlung innerhalb derselben Datenbank, während Sie in MongoDB arbeiten
-
Verwenden Sie
mongodump
undmongorestore
, um eine Sammlung innerhalb derselben Datenbank in MongoDB zu kopieren -
Verwenden Sie die
aggregate()
-Methode, um eine Sammlung innerhalb derselben Datenbank in MongoDB zu kopieren -
Verwenden Sie die
forEach()
-Schleife, um eine Sammlung innerhalb derselben Datenbank in MongoDB zu kopieren
Das Kopieren einer Sammlung innerhalb derselben Datenbank ist eine erstaunliche Aufgabe. es spart Zeit und Mühe. Dieses Tutorial demonstriert die Verwendung von mongodump
, mongorestore
, aggregate()
und forEach()
zum Kopieren einer Sammlung innerhalb derselben Datenbank mit MongoDB.
Kopieren eine Sammlung innerhalb derselben Datenbank, während Sie in MongoDB arbeiten
In den alten Versionen von MongoDB, zum Beispiel weniger als 3.0, konnten wir die Methode copyTo()
als db.collection_name.copyTo()
verwenden, um die Sammlung zu kopieren, aber das ist jetzt veraltet.
Auch das eval
ist mit dem Start der MongoDB Version 4.2 veraltet. Bitte beachten Sie, dass db.collection_name.copyTo()
das eval
umschließt, was bedeutet, dass wir die Sammlung nicht kopieren können, indem wir eine von beiden verwenden, wenn wir MongoDB Version 4.2 oder höher haben.
In neuen Versionen von MongoDB gibt es einige andere Möglichkeiten, mit denen wir eine Sammlung innerhalb derselben Datenbank kopieren können. Einige davon sind hier angegeben.
- Verwenden Sie die Befehle
mongodump
undmongorestore
- Verwenden Sie die
aggregate()
-Methode - Verwenden Sie die
forEach()
-Schleife
Fangen wir an, jeden von ihnen einzeln zu lernen.
Verwenden Sie mongodump
und mongorestore
, um eine Sammlung innerhalb derselben Datenbank in MongoDB zu kopieren
Es ist der schnellste Weg, eine Sammlung innerhalb derselben Datenbank mit MongoDB Database Tools zu klonen/kopieren; insbesondere können wir mongodump
und mongorestore
verwenden. Das Datenbanktool ist eine Suite von Befehlszeilendienstprogrammen für die Arbeit in MongoDB.
Wir können die folgenden Befehle an der Windows-Eingabeaufforderung verwenden, um die Version von mongodump
und mongorestore
zu überprüfen. Wenn es die entsprechende Version erfolgreich zurückgibt, werden die Datenbanktools installiert.
Andernfalls folgen Sie hier, um die Datenbanktools zu installieren.
Beispielcode:
C:/Users/Dell> mongodump --version
Beispielcode:
C:/Users/Dell> mongorestore --version
Denken Sie daran, dass wir die Befehle mongodump
und mongorestore
von der Befehlszeile unseres Systems ausführen müssen, zum Beispiel die Eingabeaufforderung von Windows OS oder Terminal, wenn wir Ubuntu verwenden. Führen Sie diesen Befehl niemals über die Mongo-Shell aus.
Sobald wir die Datenbanktools für die Arbeit mit MongoDB haben, führen Sie den folgenden Befehl aus, um die Sammlung teachers
in derselben Datenbank abzulegen: test
.
Beispielcode:
C:/Users/Dell> mongodump -d test -c teachers
AUSGANG:
2022-05-27T13:05:14.497+0500 writing test.teachers to dump\test\teachers.bson
2022-05-27T13:05:14.503+0500 done dumping test.teachers (3 documents)
Die obige Ausgabe zeigt, dass die Dump-Datei unter dump\test\teachers.bson
geschrieben wird. Also müssen wir es mit dem unten angegebenen Befehl wiederherstellen.
Beispielcode:
C:/Users/Dell>mongorestore -d test -c teachers1 --dir=dump/<db>/<sourcecollection.bson>
AUSGANG:
2022-05-27T13:05:28.085+0500 checking for collection data in dump\test\teachers.bson
2022-05-27T13:05:28.088+0500 reading metadata for test.teachers1 from dump\test\teachers.metadata.json
2022-05-27T13:05:28.252+0500 restoring test.teachers1 from dump\test\teachers.bson
2022-05-27T13:05:28.312+0500 finished restoring test.teachers1 (3 documents, 0 failures)
2022-05-27T13:05:28.312+0500 no indexes to restore for collection test.teachers1
2022-05-27T13:05:28.313+0500 3 document(s) restored successfully. 0 document(s) failed to restore.
Die Ausgabe sieht wie oben aus, was bedeutet, dass die Sammlung erfolgreich kopiert wurde. Die Zielsammlung mit dem Namen teachers1
wird erstellt, wenn sie in der aktuellen Datenbank nicht vorhanden ist.
Öffnen Sie als Nächstes die Mongo-Shell und führen Sie die folgende Abfrage aus, um festzustellen, ob die kopierte Sammlung vorhanden ist.
Beispielcode:
> show collections
AUSGANG:
teachers
teachers1
Alternativ können wir auch mit mongoexport
die Sammlung (teachers
) aus einer Datenbank (test
) exportieren und dann mit mongoimport
in die teachers2
-Collection innerhalb derselben Datenbank importieren.
Beispielcode:
C:/Users/Dell> mongoexport -d test -c teachers | mongoimport -d test -c teachers2 --drop
Verwenden Sie die aggregate()
-Methode, um eine Sammlung innerhalb derselben Datenbank in MongoDB zu kopieren
Beispielcode:
> db.teachers.aggregate([{$out: "teachers3"}])
Dieser Befehl wird mit der Mongo-Shell ausgeführt. Danach verwenden wir den Befehl show collections
, um zu sehen, ob teachers3
dort ist.
Beispielcode:
> show collections
AUSGANG:
teachers
teachers1
teachers2
teachers3
Wir verwenden die Aggregationspipeline, die die Daten aus der Sammlung Lehrer
zurückgibt und sie in die angegebene Sammlung schreibt, die hier Lehrer3
ist. Wir können diesen Ansatz verwenden, wenn wir MongoDB Version 4.4 oder höher haben.
Verwenden Sie die forEach()
-Schleife, um eine Sammlung innerhalb derselben Datenbank in MongoDB zu kopieren
Beispielcode:
> db.teachers.find().forEach((doc) => {
db.teachers4.insert(doc)
})
Verwenden Sie die folgende Abfrage, um zu bestätigen, dass sich teachers4
in derselben Datenbank befindet.
Beispielcode:
> show collections
AUSGANG:
teachers
teachers1
teachers2
teachers3
teachers4
Diese Methode ist im Vergleich zu allen oben genannten Ansätzen die langsamste, da eine Schleife verwendet wird. Es iteriert über alle Dokumente der Quellsammlung und fügt sie nacheinander in die Zielsammlung ein.
Verwandter Artikel - MongoDB Collection
- Entfernen Sie Duplikate in MongoDB
- Fügen Sie jedem Dokument in einer MongoDB-Sammlung ein neues Feld hinzu
- Löschen oder Löschen einer Sammlung in MongoDB
- MongoDB Truncate-Sammlung
- Überprüfen Sie mit NodeJS, ob eine Sammlung in MongoDB vorhanden ist
- Kombinieren Sie mit MongoDB zwei Sammlungen zu einer Sammlung