一、MongoDB固定集合概念
固定集合指的事先创建,并且大小固定的集合。即假设一个集合设置了固定为100,再添加一条文档的时候,会把最前面的文档剔除,永远只保留100条数据。
固定集合特性:固定集合很像环形队列,如果空间不足,醉枣的文档就会被删除,为新的文档腾出空间。一般来说,固定集合适用于任何想要自动淘汰过期属性的场景。
二、固定集合应用场景
比如日志文件,聊天记录,通话信息记录等需要保留最近某段时间内的应用场景,都会适用到MongoDB的固定集合。
当知道文档数量上限时,必须同时指定大小,淘汰机制是容量没有满足的时候会依据文档数量来工作,要是容量满了,淘汰机制会依据容量机制来淘汰。
三、如何适用固定集合
创建固定集合使用命令:
db.createCollection(name, { size : ..., capped : ..., max : ... } )
name #表示集合名称
capped #为true表示固定集合
size #表示集合最大使用的大小,默认是K
max #表示最大的文档数
1、创建一个固定集合
> db.createCollection("b3",{capped:true,size:1024,max:200})
2、对固定集合插入数据
> for (var i=1;i<199;i++){
... db.b3.insert({name:'test'+i,age:26})
... }
WriteResult({ "nInserted" : 1 })
3、查看集合
WriteResult({ "nInserted" : 1 })
> db.b3.find()
![](https://i-blog.csdnimg.cn/blog_migrate/e5bfc671e2a0aec549d0d50f143f7434.png)
#可以看到集合已经size就已经把文档剔除了