如何修改MongoDB的数据库名称

rollo 1年前 ⋅ 258 阅读

本文将提供两种方式,来达到修改mongodb的数据库名称的目的。

mongosh 方式

首先得确认一下你所使用的MongoDB的版本。 因为你如果用的 4.0.0 及之后的版本是不支持用 mongosh 来进行这个操作的。

db.version()

4.0.0及之后版本操作报错:

MongoshDeprecatedError: [COMMON-10003] `copyDatabase()` was removed because it was deprecated in MongoDB 4.0

如果你还没有安装 mongosh 或者 mongodb compass,那应该先下载安装一下。

mongosh下载:https://www.mongodb.com/try/download/shell
mongodb compass 下载:https://www.mongodb.com/try/download/compass

来执行一个命令:

use source_database
db.copyDatabase('source_database', 'target_database')
db.dropDatabase()

说明一下,db.copyDatabase('source_database', 'target_database')source_database库的数据复制到target_database库,最后的db.dropDatabase()是要将source_database库删除掉。

使用 mongo tools 工具

mongo官网就提供十分便捷高效的工具。

官网下载: https://www.mongodb.com/try/download/database-tools 在线文档: https://www.mongodb.com/docs/database-tools/

我下载的是zip包,解压后把里面的bin目录放到环境变量path里面,就可以在cmd命令行里面直接使用。

导出数据

mongodump --db source_database --out c://app//data

说明一下,这里是用了mongodump这个mongo官方提供的工具,把我们的source_database的数据导出到c://app//data目录(mongodump会在目录下创建一个source_database的目录用于存放导出的数据)。当然你还可以追加以下参数:

  • host 远端的地址,如--host remote_host:port
  • username 用户名,如--username remote_username
  • password 密码,如--password remote_password

导入数据

mongorestore --db target_database c://app//data//source_database

说明一下,这里是用了mongorestore这个mongo官方提供的工具,把我们c://app//data//source_database里面的数据导入到target_database数据库中。当然你还可以追加hostusernamepassword等参数,跟导出数据时的一样。


全部评论: 0

    我有话说:

    目录