MongoDB修改数据库名

MongoDB修改数据库名教程

MongoDB 中,我们要修改某一个数据库名,没有直接的方法可以使用,只能先将数据库复制一份为新的数据库名,然后再将原数据库删除即可。

MongoDB修改数据库名详解

语法

db.copyDatabase('old_name', 'new_name'); use old_name db.dropDatabase();

参数

参数 说明
old_name 要重命名的原数据库名
new_name 要重命名为的数据库名

说明

我们首先,使用 copyDatabase 将原数据库拷贝一份,接着,再删除原数据库就可以实现修改数据库名。

MongoDB修改数据库名详解

语法

use admin; db.adminCommand({renameCollection: "test.test", to: "test1.test"});

参数

参数 说明
old_name 要重命名的原数据库名
new_name 要重命名为的数据库名

说明

当你把所有的集合移动到了新的库下,就相当于把整个库重命名了。这会比 copyDatabase 快很多。虽然 MongoDB 没有 renameDatabase 的命令,但提供了 renameCollection 的命令,这个命令并不是仅仅能修改 collection 的名字,同时也可以修改 database。

上述命令实现了将 test 下的 test,重命名为 test1 下的 test,这个命令只修改元数据,开销很小,有了这个功能,要实现 test 重命名为 test1,只需要遍历 test 下所有的集合,重命名到 test1 下,就实现了 renameDatabase 的功能,写个 js 脚本能很快的实现这个功能,具体脚本如下:

var source = "source"; var dest = "dest"; var colls = db.getSiblingDB(source).getCollectionNames(); for (var i = 0; i < colls.length; i++) { var from = source + "." + colls[i]; var to = dest + "." + colls[i]; db.adminCommand({renameCollection: from, to: to}); }

MongoDB修改数据库名

我们首先,使用 mongo 命令,连接上数据库,具体命令如下:

mongo

如下图所示:

16_mongodb重命名数据库.png

现在,我们使用 use 命令,创建一个 haicoder 数据库,具体命令如下:

use haicoder

同时,我们在该数据库下创建一个数据表,具体命令如下:

db.t_test.insert({url:"www.haicoder.net"})

执行完毕后,如下图所示:

17_mongodb重命名数据库.png

现在,我们使用 show 命令,查看所有的数据库,具体命令如下:

show dbs

执行完毕后,如下图所示:

18_mongodb重命名数据库.png

我们看到,此时 haicoder 数据库已经存在了,现在,我们重新拷贝一份数据库,并命名为 haicoder_new,具体命令如下:

db.copyDatabase('haicoder', 'haicoder_new');

执行完毕后,我们再次使用 show 命令,此时,如下图所示:

19_mongodb重命名数据库.png

现在,我们再使用 use 切换到原来的 haicoder 数据库,并直接删除即可,具体命令如下:

use haicoder db.dropDatabase()

现在,我们再次使用 show 命令,查看所有数据库,此时,显示如下:

20_mongodb重命名数据库.png

我们看到,我们删除拷贝删除数据库实现了将数据库 haicoder 重命名为了 haicoder_new。

MongoDB修改数据库名总结

在 MongoDB 中,我们要修改某一个数据库名,没有直接的方法可以使用,只能先将数据库复制一份为新的数据库名,然后再将原数据库删除即可。