Dans les versions antérieures de MongoDB, vous pouviez utiliser le copyDB
commande ou sa méthode d'assistance, db.copyDatabase()
pour copier une base de données.
MongoDB les a depuis dépréciés. De plus, à partir de la version 4.2, MongoDB a supprimé le copydb
commande, et donc aussi la db.copyDatabase()
, ce qui signifie que vous ne pouvez pas les utiliser même si vous le vouliez si vous utilisez MongoDB 4.2 ou une version ultérieure.
Heureusement, il existe un autre moyen de copier une base de données MongoDB.
Vérifiez les outils de base de données MongoDB
Dans MongoDB, vous pouvez cloner une base de données à l'aide des outils de base de données MongoDB. Plus précisément, vous pouvez utiliser mongodump
et mongorestore
.
Les outils de base de données MongoDB sont une suite d'utilitaires de ligne de commande permettant de travailler avec MongoDB.
Si vous n'êtes pas sûr d'avoir installé les outils de base de données MongoDB, essayez d'exécuter les commandes suivantes dans votre terminal ou invite de commande pour vérifier :
mongodump --version
mongorestore --version
Cela vérifie spécifiquement le mongodump
et mongorestore
versions.
Si vous ne les avez pas, vous pouvez utiliser les instructions d'installation sur le site Web de MongoDB pour installer les outils de base de données MongoDB sur votre système.
Exemple de clonage d'une base de données
Vous devez exécuter mongodump
et mongorestore
à partir de la ligne de commande de votre système (par exemple, une nouvelle fenêtre de terminal ou d'invite de commande). Ne l'exécutez pas depuis le mongo
coquille.
Voici un exemple de code qui clone une base de données :
mongodump --archive --db=PetHotel | mongorestore --archive --nsFrom='PetHotel.*' --nsTo='PetHouse.*'
Dans ce cas, nous sauvegardons le PetHotel
base de données, puis restaurez toutes ses collections dans une base de données appelée PetHouse
. En d'autres termes, nous avons cloné le PetHotel
base de données comme PetHouse
.
Cela utilise mongodump
pour créer un fichier de sauvegarde de la base de données, puis mongorestore
pour restaurer cette base de données sous un nom différent. Nous l'avons fait en vidant la base de données dans le flux de sortie standard et en la transférant dans mongorestore
.
Voici ce que fait chaque paramètre :
Paramètre | Description |
---|---|
--archive | Écrit la sortie dans un fichier d'archive spécifié ou, si le fichier d'archive n'est pas spécifié, écrit dans la sortie standard (stdout ). Dans notre cas, le fichier d'archive n'est pas spécifié, il a donc été écrit sur la sortie standard. |
--db | Spécifie une base de données à sauvegarder. Dans ce cas, nous sauvegardons le PetHotel base de données. |
--nsFrom | Spécifie la collection dans le fichier de vidage. Le caractère générique astérisque (* ) spécifie toutes les collections. |
--nsTo | Spécifie le nom de collection qui doit être utilisé dans la base de données restaurée. |
Vous pouvez également utiliser mongodump
pour vider toutes les bases de données. Pour ce faire, exécutez simplement mongodump
sans aucun argument. Cependant, lorsque vous faites cela, cela n'inclut pas le local
et config
bases de données dans son vidage.