* 在同一个主机上从一个db的表复制到另一个db的表 db.collection_name.find().forEach(function(d){ db.
getSiblingDB('new_database')['collection_name'].insert(d);})
collection_name是数据库表名
new_database是目的数据库

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

例如:将source_collection中的数据复制一份到target_collection,代码如下:
db.source_collection.find().forEach(function(x){db.target_collection.insert(x
)})
1. 复制数据库

1.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')
1.2

db.runCommand()
{ copydb: 1, fromhost: <hostname>, fromdb: <database>, todb: <database>,
slaveOk:<bool>, username: <username>, nonce: <nonce>, key: <key> }
fromhost: 可选,见1.1;
slaveOK: 可选,设置为true,允许从secondary复制数据,此时fromehost必须被设置;
username: 可选,见1.1;
nonce: 远程服务器上产生的一次性共享密钥;
key: 对password的hash值

2. 复制Collection

2.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:是否复制索引

2.2 db.cloneCollection
db.cloneCollection(from, collection, query)
3 其它

刷新磁盘:将内存中尚未写入磁盘的信息写入磁盘,并锁住对数据库更新的操作,但读操作可以使用,使用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/kturing/article/details/73302014
<https://blog.csdn.net/kturing/article/details/73302014>
https://blog.csdn.net/xingchen1106/article/details/45477409
<https://blog.csdn.net/xingchen1106/article/details/45477409>

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信