在MongoDB中复制/克隆数据库
在早期版本的MongoDB中,您可以使用命令或其帮助程序方法来复制数据库。copyDB``db.copyDatabase()
MongoDB已经弃用了这些。此外,从版本4.2开始,MongoDB删除了命令,因此也删除了方法,这意味着即使您使用MongoDB 4.2或更高版本,即使你想使用它们,也不能使用它们。copydb``db.copyDatabase()
幸运的是,还有另一种复制MongoDB数据库的方法。
检查MongoDB数据库工具
在MongoDB中,您可以使用MongoDB数据库工具克隆数据库。具体来说,您可以使用 和 。[mongodump](https://database.guide/back-up-a-mongodb-database-using-mongodump/)``[mongorestore](https://database.guide/restore-a-mongodb-database-using-mongorestore/)
MongoDB数据库工具是一套用于使用MongoDB的命令行实用程序。
如果您不确定是否安装了MongoDB数据库工具,请尝试在终端或命令提示符中运行以下命令进行检查:
mongodump --version
mongorestore --version
这专门检查 和 版本。mongodump``mongorestore
如果您没有它们,您可以使用MongoDB网站上的安装说明将MongoDB数据库工具安装到您的系统上。
克隆数据库的示例
您需要从系统的命令行运行(例如,新的终端或命令提示符窗口)。不要从外壳运行它。mongodump``mongorestore``mongo
下面是克隆数据库的代码示例:
mongodump --archive --db=PetHotel | mongorestore --archive --nsFrom='PetHotel.*' --nsTo='PetHouse.*'
在这种情况下,我们备份数据库,然后将其所有集合还原到名为 的数据库。换句话说,我们将数据库克隆为 .PetHotel``PetHouse``PetHotel``PetHouse
这用于创建数据库的备份文件,然后以不同的名称还原该数据库。为此,我们将数据库转储到标准输出流中,然后通过管道连接到 .mongodump``mongorestore``mongorestore
以下是每个参数的作用:
| 参数 | 描述 |
|---|---|
--archive |
将输出写入指定的存档文件,如果未指定存档文件,则写入标准输出 ()。在我们的例子中,存档文件未指定,因此它写入了标准输出。stdout |
--db |
指定要备份的数据库。在这种情况下,我们备份数据库。PetHotel |
--nsFrom |
指定转储文件中的集合。星号通配符 () 指定所有集合。* |
--nsTo |
指定应在还原的数据库中使用的集合名称。 |
还可以 转储所有数据库。要做到这一点,只需在没有任何参数的情况下运行。但是,当您这样做时,它不会在其转储中包含 和 数据库。mongodump``mongodump``local``config