MongoDB 内部命令
#远程复制数据
db.runCommand({cloneCollection:"test.c1",
from:"10.10.18.109:27017"})
#不复制索引
db.runCommand({cloneCollection:"test.c1",
from:"10.10.18.109:27017",copyIndexes:false})
#本地复制数据c1源表 c111目标表
db.c1.find().forEach(function(x){db.c111.insert(x)})
#远程复制数据库 from_db1 源数据库名
db.copyDatabase("from_db1", "to_db2", "10.10.18.109")
db.copyDatabase("from_db1", "to_db2", "10.10.18.109", "uid",
"pwd")
#本地复制数据库
db.copyDatabase("to_db2", "to_db5", "localhost")
#查找文件
db.fs.files.find({});
{
}
#下载文件
mongofiles -d giftshop -l
/root/74731a1c31f547468523c6cf
#刷新磁盘
use admin
db.runCommand({fsync:1})
#异步刷新磁盘
db.runCommand({fsync:1, async:true})
#打印各表的状态信息
db.printCollectionStats()
#修复数据库
db.repairDatabase();
#其操作为异步,故在client返回写入成功,实际不一定。故加入这个,增加锁等待
#3表示写入3个节点后再返回成功
db.getLastError(3, 5000)
#查看活动进程
db.currentOp()
#结束进程
db.killOp(123)
#验证collection的有效性
db.collection.validate()
#服务启动时指定IP 端口
./mongod --bind_ip 192.168.1.100 --port 28018
#进入 需指明IP及端口号
./mongo 192.168.1.100:28018
#增加用户
db.addUser("root","1111",true)
#连接验证
db.auth("root","1111")
#删除用户
db.removeUser("root")
#显示所有用户
show users;
#####################################索引######################################
#创建索引 c1表的x字段 升序=1 降序=-1
db.c1.ensureIndex({x:1})
#参数为[后台创建索引]
{background:true}
#参数为[唯一索引]
{unique:true}
#获取所有c1的索引
db.c1.getIndexes()
#查询解析(执行计划),判断是否使用了索引
db.t5.find({age:{$lt:30}}).explain()
#强制走索引hint
db.t5.find({age:{$lt:30}}).hint({name:1, age:1}).explain()
#删除索引--
#删除所有索引
db.t3.dropIndexes()
#删除单个索引
db.t4.dropIndex({firstname:1});
#重构索引
#会扫描全库,并能导入/导出来重新整理数据集合,清理碎片
db.repairDatabase()
db.t3.reIndex()
######################################日志####################################
#0不记录 1慢查询 2所有操作
db.getProfilingLevel()
db.setProfilingLevel(2)
#级别1 超时10ms
db.setProfilingLevel(1,10)
#查询Profiler记录
#查找执行时间大于5ms的日志
db.system.profile.find({millis:{$gt:5}})
#查看最新产生的Profiler记录
db.system.profile.find().sort({$natural:-1}).limit(1)
######################################性能####################################
#从底层监控有哪些命令发出
./mongosniff --source NET lo
./mongosniff --source NET eth0
#查看mongodb内部运行状态
./mongostat
#查看实例运行状态 与 mongostat类似,并且显示的数据更为具体和全面,但其缺点是数据是静态的而不是实时的
db.serverStatus()
#查看库运行状态
db.stats()
#http的web访问,需要数据开放的端口号上加1000进行访问,如开放为27018,则需下面访问
http://10.10.18.109:28018
#再use admin后使用db.auth("root","1111")命令进行连接验证,直接使用 ./mongo -u root -p 1111无效