mongodb数据库的使用-固定集合使用-查看集合-删除集合-显示当前库中所有集合-创建固定集合

Capped Collection


固定集合(Capped Collection)是性能出色的有着固定大小的集合,以LRU(Least Recently Used最近最少使用)规则和插入顺序进行age-out(老化移出)处理,自动维护集合中对象的插入顺序,在创建时要预先制定大小,如果空间用完,新添加的对象将会取代集合中最旧的对象,永远保持最新的数据。




查看集合的状态信息


db.cot1.stats(); //查看集合cot1的状态信息


删掉指定集合


db.collection1.drop(); //删除collection1集合


mongoDB中集合创建默认是隐式创建的,可以使用createCollection显示创建集合


db.createCollection("collect");


删掉指定数据库


db.dropDatabase(); //删除当前数据库


查询所有数据库


show dbs //查询所有数据库


显示当前库中所有集合


show tables; 或者 show collections;






固定集合的功能特点


可以插入及更新,但更新不能超出collection的大小,否则更新失败,不允许删除,但是可以调用drop()删除集合中的所有行,但是drop后需要显式地重建集合.在32位机子上一个cappped collection的最大值约为482.5M,64位上只受系统文件大小的限制.






固定集合属性及用法:


属性1:对固定集合进行插入速度极快


属性2:按照插入顺序的查询输出速度极快


属性3:能够在插入最新数据时,淘汰最早的数据






用法1:储存日志信息


用法2:缓存一些少量的文档






创建固定集合


不像普通集合,固定集合需要显示的创建使用createCollection命令
db.createCollection("book",{capped:true,size:10000,max:5});


db.createCollection("mycappedcoll",{capped:true,size:10000,max:100,autoIndexId:false})


创建一个集合为collect的固定集合,大小为10000字节,还可以指定文档个数,加上Max:100属性.


注意:指定文档上限,必须指定大小,文档限制是在容量没满时进行淘汰,要是满了,就根据容量限制来进行淘汰.








可以再创建capped collection时指定collection中能够存放的最大文档数目,但这是要指定size,因为总是先检查size后检查maxRowNumber.可以使用validate()查看一个collection已经使用了多少空间,从而决定size设为多大.


> db.createCollection("mycappedcoll",{capped:true,size:10000,max:100})


{ "ok" : 1 }


> db.mycappedcoll.validate();


创建collection时还有一个参数”autoIndexID”,值可以为”true”和”false”,决定是否需要在”_id”上创建索引,例如


> db.createCollection("mycappedcoll",{capped:true,size:10000,max:100,autoIndexId:false})


默认情况下对一般的collection是创建索引的,但不会对capped collection创建.capped collection不能被Shard,这也是有道理的,一个经常被刷新且大小固定的表,做Sharding(分片)也没太大意义.






转换集合


把普通的集合转换成固定集合需要使用convertTocapped命令


db.runCommand( { convertToCapped:"test",size:10000 } );
把test普遍集合转换为固定集合,大小为10000字节.






自然排序


固定集合文档按照插入顺序储存的,默认情况下查询就是按照插入顺序返回的,也可以使用$natural调整返回顺序.


db.mycappedcolt.find().sort( {"$natural":1} );
参数1表示默认顺序,-1则相反.






判断集合是否为固定集合


db.colt.isCapped();




查看集合状态信息


db.colt.stats();

你可能感兴趣的:(MongoDB数据库)