您的位置:首页 > 数据库 > 其它 > 正文

什么是mongodb 固定集合

更多 时间:2013-9-15 类别:数据库 浏览量:1899

什么是mongodb 固定集合

什么是mongodb 固定集合

1、功能特性

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

默认情况下固定集合没有索引,即便是“_id”上也没有索引。一般来说,固定集合适用于任何想要自动淘汰过期属性的场景,没有太多的操作限制。

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


属性1: 对固定集合进行插入数据极快。
属性2:按照插入顺序的查询输出速度极快。
属性3:能够在插入最新数据时,淘汰最早的数据。

用法1:储存日志信息(后面的日志往前递增,前面的日志自动删减,保证日志总量的大小固定)
用法2:缓存一些少量的文档。

 

2、创建固定集合

不像普通集合,固定集合需要显式的创建和使用


db.createCollection("my_collections",{capped:true,size:100000,max:100});


创建一个集合为my_collection的固定集合,size指定集合大小,max指定文档的数量。


注意:当指定文档数量上限时,必须同时指定大熊。淘汰机制只有在容量还没有满时才会依据文档数量来工作。要是容量满了,淘汰机制会依据容量来工作。

 

3、将普通集合转换为固定集合


db.runCommand({converToCapped:"test",size:10000});


4、自然排序


固定集合有种特殊的排序方式,叫做自然排序。自然排序就是文档在磁盘上的顺序,固定集合的文档总是按照插入的顺序存储的,自然排序就是与此相同。


db.my_collection.find().sort({"$natural":-1})