Mongodb - 更改数据库名称

Posted

技术标签:

【中文标题】Mongodb - 更改数据库名称【英文标题】:Mongodb - Change db name 【发布时间】:2012-03-04 19:03:28 【问题描述】:

如何在 mongodb 中更改数据库名称?简单的问题,但我在网上找不到任何关于如何做到这一点的信息。我不想重建我的整个数据库,我只是想更改它的名称。谢谢。

【问题讨论】:

重命名时要小心,不要将集合复制到现有数据库中。查看我的答案***.com/a/44986052/1696621 【参考方案1】:

简单使用:

db.copyDatabase("old_db_name","new_db_name","localhost")
use old_db_name
db.dropDatabase();

【讨论】:

重命名时要小心,不要将集合复制到现有数据库中。查看我的答案***.com/a/44986052/1696621 可以使用到4.0版本。【参考方案2】:

唯一的方法是将数据库克隆为一个不同的名称

http://www.mongodb.org/display/DOCS/Copy+Database+Commands

你可以去here 并为该功能投票

【讨论】:

【参考方案3】:

你可以转储数据库

./mongodump -d mydb

重命名文件夹

mv /path/to/dump/folder/mydb /path/to/dump/folder/mynewdb

然后恢复

./mongorestore

【讨论】:

【参考方案4】:

从版本 4.2 开始,MongoDB 删除了已弃用的 copydb 命令。 此外,db.copyDatabase() 和 db.cloneDatabase() 只能在连接到 MongoDB 4.0 或更早版本时运行。

如mongoDB manual 所述,将这种方法用于 4.2 版

    使用 mongodump 将测试数据库转储到存档 mongodump-test-db:
mongodump --archive="mongodump-test-db" --db=test
    将 mongorestore 与 --nsFrom 和 --nsTo 一起使用从存档中恢复(更改数据库名称):
mongorestore --archive="mongodump-test-db" --nsFrom='test.*' --nsTo='examples.*'

【讨论】:

以上是关于Mongodb - 更改数据库名称的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spring-data 中更改/定义 Mongodb 的默认数据库?

MongoDB更新文档

如何获取 MongoDB 属性的最后一个值?

Meteor 无法连接到 MongoDB

使用 mongoose 从 Atlas Mongodb 获取数据到 Angular 应用程序

Mongodb更新,但旧信息呈现