数据库

 首页 > 数据库 > MongoDB > MongoDB 内部命令

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})#...

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 源数据库名 to_db2 目录数据库 10.10.18.109源服务器IP
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({});
{
  "_id" : ObjectId("4ce9ddcb45d74ecaa7f5a029"),
  "filename" : "03-smbd-menu-screen.mp3",
  "chunkSize" : 262144,
  "uploadDate" : "Mon Nov 22 2010 03:04:44 GMT+0000 (UTC)",
  "md5" : "7872291d4e67ae8b8bf7aea489ab52c1",
  "length" : 1419631
}
#下载文件
mongofiles -d giftshop -l /root/74731a1c31f547468523c6cf20cf8fcb.jpg get 74731a1c31f547468523c6cf20cf8fcb.jpg
#刷新磁盘
use admin
db.runCommand({fsync:1})
#异步刷新磁盘
db.runCommand({fsync:1, async:true})

#打印各表的状态信息
db.printCollectionStats()

#修复数据库
db.repairDatabase();

#其操作为异步,故在client返回写入成功,实际不一定。故加入这个,增加锁等待
#3表示写入3个节点后再返回成功 5000超时5000ms取消getLastError操作
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


##############################################权限############################
#增加用户 最后一个参数可选true为只读
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});
#重构索引 命令只对单个collection起作用,如果数据库中有很多需要回收空间的表,建议使用db.repairDatabase()进行全库级别的空间回收,以提高回收效率
#会扫描全库,并能导入/导出来重新整理数据集合,清理碎片
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


#如果使用了--auth参数启动或者是 --keyFile并且设置了admin库的密码,则在登录时,需先使用无密码登录,
#再use admin后使用db.auth("root","1111")命令进行连接验证,直接使用 ./mongo -u root -p 1111无效


MongoDB 内部命令
分享到:
在PHP程序中使用MongoDB的演示代码
在PHP程序中使用MongoDB的演示代码 今天外面刮着呼呼的大风,能在一个温暖的小屋写着博客也是北漂的一种幸福。好了废话不多说,今天主要说一下php连接、操作mongodb,如果你没有看上两期的内容,不知道如何安装php对mongodb的扩展的话请您返回去看《php对mongodb的扩展(初识如故) 》和《php对mongodb的扩展(初出茅庐)》 。...
MongoDB Tailable Cursors深入解析
MongoDB Tailable Cursors深入解析 MongoDB Tailable Cursors 是一个类似于UNIX tail -f 命令的功能,它使用在MongoDB的capped collection上。利用这一特性可以轻松的实现消息队列系统(简介看这里)。而官网上对于 Tailable Cursors 的讲解却非常简略,下面推荐的是一篇通过多种方式的性能测试,对 Tailable Cursors 进...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……