use testing;
db.dropDatabase(); //Here the db **testing** is deleted successfully
Now just think what happens if you try renaming the new database name with existing database name
例:
db.copyDatabase('testing','movies');
因此,在此上下文中, testing 的所有集合(表)将被复制到 movies 数据库 .
124
上面的过程很慢,您可以使用下面的方法但是您需要将集合按集合移动到另一个db .
use admin
db.runCommand({renameCollection: "[db_old_name].[collection_name]", to: "[db_new_name].[collection_name]"})
173
在您将所有数据放入管理数据库的情况下(您不应该 db.copyDatabase() 通知 db.copyDatabase() 赢得't work because your user requires a lot of privileges you probably don' t想要给它 . 这是一个手动复制数据库的脚本:
use old_db
db.getCollectionNames().forEach(function(collName) {
db[collName].find().forEach(function(d){
db.getSiblingDB('new_db')[collName].insert(d);
})
});
6 回答
不,没有 . 见https://jira.mongodb.org/browse/SERVER-701
你可以这样做:
编者注:这与问题本身使用的方法相同,但无论如何都证明对其他人有用 .
替代解决方案:您可以转储数据库并以不同的名称还原它 . 因为我've experienced it'比
db.copyDatabase()
快得多 .http://docs.mongodb.org/manual/tutorial/backup-with-mongodump/
ALERT :嘿大家在复制数据库时要小心,如果你不想搞乱单个数据库下的不同集合 .
The following shows you how to rename
要重命名,请使用以下语法
例:
现在,您可以通过以下方式安全地删除旧数据库
Now just think what happens if you try renaming the new database name with existing database name
例:
因此,在此上下文中, testing 的所有集合(表)将被复制到 movies 数据库 .
上面的过程很慢,您可以使用下面的方法但是您需要将集合按集合移动到另一个db .
在您将所有数据放入管理数据库的情况下(您不应该
db.copyDatabase()
通知db.copyDatabase()
赢得't work because your user requires a lot of privileges you probably don' t想要给它 . 这是一个手动复制数据库的脚本: