1、使用工具Studio 3T for MongoDB

选择一个数据库中的Collections集合,然后按住 Ctrl+C 复制快捷键会弹出如下帮助框。

点击 Ctrl+V 粘贴快捷键,重命名一下复制的名称即可。

2、使用工具Robo 3T

在Collection中,右键选择复制Collection

然后重命名即可

3、利用foreach方法在shell里直接运行

在同一个主机上从一个db的表复制到另一个db的表

db.collection_name.find().forEach(function(d){
db.getSiblingDB('new_database')['collection_name'].insert(d);
})

collection_name是数据库表名
new_database是目的数据库

克隆本地collection,mongodb没有提供命令进行本地复制,但我们可以写一个循环插入的方法完成

在同一个主机上同一个db下复制一个表

db.复制源表名.find().forEach(function(x){
db.目的表名.insert(x);
})

例子:

db.t_sentiment_ids.find().forEach(function(x){
db.t_sentiment_ids22.insert(x);
})

4、 复制数据库

4.1

db.copyDatabase(fromdb,todb,fromhost,username,password,mechanism)

后面四个选项可选:

fromdbt: 源db;
todb: 目标db;
fromhost: 源db的主机地址,如果在同一个mongod实例内可以省略;
username: 如果开启了验证模式,需要源DB主机上的MongoDB实例的用户名;
password: 同上,需要对应用户的密码;
mechanism: fromhost验证username和password的机制,有:MONGODB-CR、SCRAM-SHA-1两种。

db.copyDatabase('test','test2','192.168.14.52:27017','test','test','SCRAM-SHA-1')

不带密码认证的测试成功了,带密码认证的还未成功

4.2

db.runCommand()

{ copydb: 1,
fromhost: <hostname>,
fromdb: <database>,
todb: <database>,
slaveOk: <bool>,
username: <username>,
nonce: <nonce>,
key: <key>
}

fromhost: 可选,见4.1;
slaveOK: 可选,设置为true,允许从secondary复制数据,此时fromehost必须被设置;
username: 可选,见4.1;
nonce: 远程服务器上产生的一次性共享密钥;
key: 对password的hash值

5、 复制Collection

5.1 runCommand

db.runCommand({
cloneCollection:<namespace>
fromhost:<hostname>
query: <filter>
});

db.runCommand({
cloneCollection:'testdb.testcol',
from:'192.168.1.12:27017',
copyIndexes:false,
query:{'age':{'gt':2}}
});

copyIndexes:是否复制索引

5.2 db.cloneCollection

db.cloneCollection(from, collection, query)

6、 其它

刷新磁盘:将内存中尚未写入磁盘的信息写入磁盘,并锁住对数据库更新的操作,但读操作可以使用,使用runCommand命令,这个命令只能在admin库上执行
格式:db.runCommand({fsync:1,async:true})
async:是否异步执行
lock:1 锁定数据库

数据压缩:mongodb的存储结构采用了预分配的机制,长期不断的操作,会留下太多的的碎片,从而导致数据库系统越来越慢。
repairDatabase命令是mongodb内置的一个方法,它会扫描数据库中的所有数据,并将通过导入/导出来重新整理数据集合,将碎片清理干净
现在看压缩前和压缩后的对比数据,如下所示:

PRIMARY> db.t1.storageSize()
65232896
PRIMARY> db.t1.totalSize()
81470432
PRIMARY> db.repairDatabase()
{ “ok” : 1 }
PRIMARY> db.t1.storageSize()
65232896
PRIMARY> db.t1.totalSize()
79851584

转自:https://blog.csdn.net/xc_zhou/article/details/80952472

mongo复制数据库和表的更多相关文章

  1. [SQL]复制数据库某一个表到另一个数据库中

    SQL:复制数据库某一个表到另一个数据库中 SELECT * INTO 表1 FROM 表2 --复制表2如果只复制结构而不复制内容或只复制某一列只要加WHERE条件就好了 例子:SELECT * I ...

  2. mysql复制表以及复制数据库

    (一)将旧表复制到新表 1.CREATE TABLE新表 SELECT* FROM旧表; 该语句只是复制表结构以及数据,它不会复制与表关联的其他数据库对象,如索引,主键约束,外键约束,触发器等. CR ...

  3. sql数据库如何在数据库里面把其中一个数据库的表复制到另一个数据库里面

    在sqlserver数据库里面,我们肯定有这样一个情况,假如我用的是SQL2008,如何把数据库里面的整个表以及表内数据复制到另外一个表中.那应该如何操作??有两种方法,我们一起来看一下 复制表结构: ...

  4. 【SQL Server高可用性】数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表

    原文:[SQL Server高可用性]数据库复制:SQL Server 2008R2中通过数据库复制,把A表的数据复制到B表 经常在论坛中看到有人问数据同步的技术,如果只是同步少量的表,那么可以考虑使 ...

  5. 【SQL Server复制】数据库复制:修改表结构、新增表、新增存储过程 会被复制到订阅服务器?

    转自:https://www.cnblogs.com/happyday56/p/3849018.html 关键字:sql server复制 [SQL Server高可用性]数据库复制:修改表结构.新增 ...

  6. WPF根据Oracle数据库的表,生成CS文件小工具

    开发小工具的原因: 1.我们公司的开发是客户端用C#,服务端用Java,前后台在通讯交互的时候,会用到Oracle数据库的字段,因为服务器端有公司总经理开发的一个根据Oracle数据库的表生成的cla ...

  7. EntityFramework之数据库以及表基本创建(一)

    前言 之前有学过EF一段时间那时EF才4.0似乎还不太稳定,而现在EF都已7.0版本,同时AspNet Identity都与此大有关联,看来是大势所趋于是开始学习EF,在学EF过程中也遇到一些小问题, ...

  8. 11g 使用rman duplicate复制数据库,创建辅助实例

    一,创建所需目录 1)创建审计文件目录 PROD1@dbrac1 /dsg/oracle11$ cd $ORACLE_BASE/admin PROD1@dbrac1 /u01/app/oracle/a ...

  9. mysql数据库、表、字段、记录:增、删、改、查

    /* 结构:数据库.表.字段.记录 操作:增删改查 */ -- 1.数据库:增删改查 create datebase if not exists jkxy; drop database if exis ...

随机推荐

  1. Java子类和父类的初始化执行顺序

    要明白子类和父类的初始化执行顺序,只需要知晓以下三点,就不会再弄错了. 1.创建子类对象时,子类和父类的静态块和构造方法的执行顺序为:父类静态块->子类静态块->父类构造器->子类构 ...

  2. .net批量插入数据库,SqlBulkCopy方法

    /// <summary> /// 把数据插入LessonQuestion表 /// </summary> /// <param name="lessontit ...

  3. python爬虫心得(第一天)

    爬虫是什么? 我个人觉得用简单通俗的话来说就是在浏览网页的过程中将有价值的信息下载到本地硬盘或者是储存到数据库中的行为. 爬虫的基础认知 可以参考此链接:https://www.imooc.com/a ...

  4. montagy

    因为只是想分享ghcjs和webgl的使用经验,所以很多地方说的很粗,因为涉及的知识确实很多, 推荐两本书,一本haskell基础的 learn you a haskell for great goo ...

  5. dTree动态生成树(后台处理,简化前台操作)

    dTree是个很方便在页面生成树的 js 控件,如果你下载了,我猜里在几分钟之内便能在页面上显示出一颗树来. 它本身给的例子是通过一些静态数据构造树,下面我说一种通过查询的数据动态构造树的方法. 例子 ...

  6. react-native保存图片Android实现方法

    /图片的路径格式为远程请求, 例如:'http://xxx:8080/image.jpg' import { Platform, PermissionsAndroid, NativeModules } ...

  7. Thomson Plaza里面的三家店以及水果大会

    旅行应该是一个发现的过程,至少我是这么认为的.很多时候并不一定要到什么特别的地方,也可以感受到旅游的乐趣.我觉得只要能看到值得回味的东西就好了.而能回味的东西,往往是需要仔细地来品.像旅行社安排的那样 ...

  8. Hive Functions

    函数的分类 内置函数 操作符 复杂对象 UDF函数 数学函数 类型转换函数 日期函数 条件函数 UDTF函数 常用UDTF函数 explode posexplode inline stack json ...

  9. 初识Spring JdbcTemplate

    JdbcTemplate 概述 JdbcTemplate是Spring提供的一个模板类,它是对jdbc的封装.用于支持持久层的操作.具有简单,方便等特点. pom.xml <!--依赖版本--& ...

  10. Sublime Text3 旧版本下载以及破解激活方式

    前言 当前Sublime Text3 出到了32**版本,以前直接输入激活码的方法已经不能使用. 而官网又不提供旧版本的下载链接,因此在此分享旧版本下载方式以及激活方式. 下载方法 通过下面这个链接下 ...