`
chenzng
  • 浏览: 13334 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

MongoDB管理:如何重命名数据库

 
阅读更多

最近收到一个AliCloudDB for MongoDB的使用咨询问题,和大家分享一下,用户想对database进行重命名操作,但因为MongoDB并没有提供renameDatabase的命令,用户的想法是通过copydb来实现,先将数据库拷贝一份,然后删除老的数据库,但由于DB里数据很多,copydb太耗时,想知道是否有更好的方法?

虽然MongoDB没有renameDatabase的命令,但提供了renameCollection的命令,这个命令并不是仅仅能修改collection的名字,同时也可以修改database。

 db.adminCommand({renameCollection: "db1.test1", to: "db2.test2"})

上述命令实现了将db1下的test1,重命名为db2下的test2,这个命令只修改元数据,开销很小,有了这个功能,要实现db1重命名为db2,只需要遍历db1下所有的集合,重命名到db2下,就实现了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});
}    

执行JS标本文件

mongo host:port/dbname --shell file.js;
分享到:
评论

相关推荐

    csgo-web-application:用于预订服务器和创建集合的Web应用程序

    安装mongodb: : 为应用程序mongodb数据创建一个文件夹使用以下命令启动mongodb服务器:mongod --dbpath 包管理器和依赖项 安装npm: ://docs.npmjs.com/getting-started/installing-node 从项目根目录,编写命令:...

    mongo-express:基于Web的MongoDB管理界面,使用Node.js编写并表达

    使用Node.js,Express和Bootstrap3编写的基于Web的MongoDB管理界面 产品特点 连接到多个数据库 查看/添加/删除数据库 查看/添加/重命名/删除收藏集 查看/添加/更新/删除文档 在集合视图中内联预览音频/视频/图像...

    基于Web的MongoDB管理界面,使用Node.js编写并表达-Node.js开发

    使用Node.js,Express和Bootstrap3功能编写的mongo-express基于Web的MongoDB管理界面连接到多个数据库查看/添加/删除数据库查看/添加/重命名/删除集合查看/添加/ mongo-express基于Web的MongoDB管理界面使用Node.js...

    senz.app.db.viewer:为每个数据库查看器扩展

    express 使用Node.js编写并基于Express的基于Web的MongoDB管理界面 -主(稳定)分支 -开发分支特征当前功能: 连接到多个数据库连接并验证各个数据库以管理员身份验证以查看所有数据库数据库黑名单/白名单查看/添加/...

    BuguMongo使用文档

    BuguMongo是一个轻量级的...• 用面向对象的编程思维操纵MongoDB数据库。 • 摆脱底层细节处理,专注于业务逻辑。 • 大大减少代码量,提高开发效率。 BuguMongo已在多个正式商业项目中使用,并取得了理想的效果。

    java8源码-private-cloud-storage:一个简单实用的云存储服务器

    支持分享、公,私有权限管理的个人云网盘 嫌弃Nginx自带文件服务器又不想用ownCloud的轮子 基于Kotlin+SpringBoot+MongoDB开发 遵循RESTful规范 前端网页版本由完成,感谢Clovin大佬的测试与前端支持 前端安卓版正在...

    logCollectorFrontend

    使用Node.js编写并基于Express的基于Web的MongoDB管理界面 -主(稳定)分支 -开发分支 特征 当前功能: 连接到多个数据库 连接并验证各个数据库 以管理员身份验证以查看所有数据库 数据库黑名单/白名单 查看/...

    基于HTML5的实时聊天工具的设计与实现

    数据库 mongodb/mysql gulp插件 作用 gulp-sass sass文件编译 gulp-minify-css css文件压缩 gulp-jshint js语法检查 jshint-stylish js语法检查显示样式 gulp-uglify js文件压缩 gulp-concat 文件合并 gulp-rename ...

    countr:Countr的源代码

    要自行托管机器人,您需要具备以下条件: 节点-确认适用于v12.16.1 npm-Node附带的版本并不重要Discord机器人令牌,并将该机器人安装在您的服务器中一个mongodb.com数据库的设置,以及该数据库的用户(具有写访问...

    bootcamp-directory-api:使用Node.js构建的用于管理Bootcamp目录的API

    使用Node.js,Express和MongoDB构建的RESTful API 使用JWT和Cookie进行身份验证 注册,登录和注销功能,带有密码/令牌哈希,并通过电子邮件重置密码。 地理编码,用于在邮政编码范围内获取资源 照片上传 自定义...

    node-express-crud-passport-auth

    只有具有 Admin 角色的用户才能管理用户数据。 可以注册和编辑自己的数据。 ➤ 目录 使用 MongoDB 映像下载并运行 Docker 容器 将 .env.example 重命名为 .env 并设置环境变量(端口、数据库名称、秘密) 运行...

    cards-against-idiots:不必要的反人类卡片克隆

    要求(4.6或更高版本), , Heroku部署安装克隆Git回购安装依赖项并使用gulp npm run build 将.env.example重命名为.env并更新特定于环境的变量(请参见下文) 启动服务器npm start配置根目录中的.env文件以NAME=...

    TopCoderDataCollector

    ,要安装Python 3.9,请参见。...设置运行时环境变量我们使用.env文件来管理机密信息,例如数据库用户名和密码(在远程服务器上使用MySQL或MongoDB时)。 复制.env.default文件并将其重命名为.env 。 cp .en

Global site tag (gtag.js) - Google Analytics