超过存储上限或记录条数删除最早的记录:
db.createCollection("集合名",{capped:true,size:1024,max:100})
注解:指定集合名的最大记录条数和最大内存为1MB,超过这两个条件任意之一就会删除最早的数据;
在MongoDB服务器端执行Javascript脚本:
E.G:db.eval("Function(name){return "hello"+name;}",['refactor'])
输出结果为:hello refactor;
数据库加锁和解锁:加锁:db.fsyncLock()解锁:db.fsyncUnlock()
注意:不能关闭当前shell窗口
获取文档名:E.g: getCollection("文档名")
修改文档名:E.g: db.getCollection('原文档名').renameCollection('结果文档名')
获得数据库里的集合名:db.getCollectionNames()
返回上一个错误和查看完整的错误结果:(暂未明确使用情况,暂定为找语句错误)
db.getLastError()
db.getLastErrorObj()
查看这个MongoDB的IP和接口: db.getMongo()
查看从机:db.getMongo().setSlaveOk()
获取数据库名: db.getName() 等同于db;
查询之前的错误信息: db.getPrevError()
清除错误记录: db.resetError()
获取当前数据库集群的复制集信息: db.getReplicationInfo()
数据库所在系统和数据库信息(????): db.hostInfo()
查询主库的状态: db.isMaster()
停止数据库上操作时间大于三秒的操作: db.currentOp({"active":"teue","secs_running":{"$gt":3},"ns":"/^表名./"})
查看当前MongoDB支持的所有的命令: db.listCommands()
获取当前数据库各个集合的基本信息: db.pringCollectionStats()
查询服务器信息: db.serverStatus()
修改服务器最大连接数db.serverStatus().connectionsdb{"current":1,"available":818,"totalCreated":NunberLong(6)}
显示当前db信息: db.stats()
显示当前db版本:db.version()
多条件查询: db.集合名.find({age:{$in:[42,22]}})
模糊查询:db.集合名.fing("字段名":/a/) 模糊查询名字里有a的 汉字不需加双引号 name:/a$/显示以a为开头的
可以在命令提示符里加入for循环,
E.G: for(var i =0;i<10;i++){db.list.insert({"name":"a"+i,"age":i+1})} //循环生成
var aa = db.list.find()
while(aa.hasNext()){var name=aa.next().name; var bb=db.booklist.find({'writer':name}); while(bb.hasNext()){printjson(bb.next());}}
注意:其一,hasNext后面需加一对小括号并且注意大小写;其次,注意括号和分号的使用;
journal文件在MongoDB中的作用相当于redo日志文件在oracle中的作用
64位机器上,2.0版本以上默认启动journal,32位机器上2.0版本默认不开启journal
默认输出刷新时间范围"2~~300 journal默认大小:1G左右; 使用smallfiles这个运行时选项可以将journal文件的大小减至128MB大小
两个file,两个view:data file和journal file; shared view 和 private file
两个file是对磁盘而言的,两个view是对内存而言的
MongoDB数据库的读写操作都是在private file上的;