什么是mongodb 固定集合
什么是mongodb 固定集合1、功能特性
mongodb的固定集合是性能出色的有着固定大小的集合,以LRU(Least Recently Used最近最少使用)规则和插入顺序进行age-out(老化移出)处理,自动维护集合中对象的插入顺序,在创建时需要预先指定大小。如果空间用完,新添加的对象将会取代集合中最旧的对象,这样使得永远保持最新的数据。
默认情况下固定集合没有索引,即便是“_id”上也没有索引。一般来说,固定集合适用于任何想要自动淘汰过期属性的场景,没有太多的操作限制。
可以插入及更新,但更新不能超出collection的大小,否则更新失败。不允许删除,但是可以调用drop删除集合中的所有行,但是drop后需要显式地重建集合。在32位机上一个固定集合的最大值约为482.5M,64位上只受系统文件大小的限制。
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})