首页 / MONGODB / MongoDB的固定集合
MongoDB的固定集合
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MongoDB的固定集合,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2148字,纯文字阅读大概需要4分钟。
内容图文
一、MongoDB固定集合概念
固定集合指的是事先创建,并且大小固定的集合。即假设一个集合设置了固定大小为100,再添加一条文档的时候,会把最前面的文档剔除,永远只保留100条数据。
固定集合特性:固定集合很像环形队列,如果空间不足,最早的文档就会被删除,为新的文档腾出空间。一般来说,固定集合适用于任何想要自动淘汰过期属性的场景。
二、固定集合应用场景
比如日志文件,聊天记录,通话信息记录等只需保留最近某段时间内的应用场景,都会使用到MongoDB的固定集合。
三、如何使用固定集合
创建固定集合使用命令:db.createCollection("集合名词",{capped:true,size:1000,max:100});
capped:true表示该集合为固定集合,size指定集合大小,单位为KB,max指定文档的数量
当指定文档数量上限时,必须同时指定大小。这是为什么呢?
答案是:淘汰机制只有在容量还没有满时才会依据文档数量来工作。要是容量满了,淘汰机制会依据容量来工作。
结合场景来理解:
(1)现创建一个c5的固定集合,大小设置为1000kb,文档数量设置为100,编写命令:db.createCollection("c5",{capped:true,size:1000,max:100});
(2)并向集合中插入10条数据:
for(var i=0,i<=99;i++){
db.c5.insert({name:"fuck",age:i})
}
(3)查找c5集合的大小:db.c5.count(),却发现实际显示的数量只有56条。
结论:当存储的数据达到集合大小的上限时,淘汰机制依据容量来工作,通过不断的淘汰前面插入的数据,来满足后面所有数据的插入,所以根据下图可得,c5检索出来的结果,是从age:43开始的。
再来看一个场景
(1)现创建一个c8的固定集合,大小设置为10000kb,文档数量设置为100,编写命令:db.createCollection("c8",{capped:true,size:10000,max:100});,条件与上个场景差不多,只是大小调整为10000kb
(2)并向集合中插入100条数据:
for(var i=0,i<100;i++){
db.c8.insert({name:"fuck",age:i})
}
(3)再查找c8集合的大小:db.c8.count(),这回的数量达到了预期的100条
(4)这时再插入一条数据,也能插入成功,但是再find一把,会发现第一条数据被干掉了
结论:淘汰机制在容量未满的情况下,会对前面的文档进行淘汰,后面插入多少条数据,则最前面相应的淘汰多少条。
MongoDB的固定集合
标签:ima strong create 集合 成功 添加 insert cap 结合
本文系统来源:http://www.cnblogs.com/jiyukai/p/6980511.html
内容总结
以上是互联网集市为您收集整理的MongoDB的固定集合全部内容,希望文章能够帮你解决MongoDB的固定集合所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。