微信搜索
江南一点雨

MongoDB固定集合

MongoDB 系列其他文章:

1.Linux上安装MongoDB
2.MongoDB基本操作
3.MongoDB数据类型
4.MongoDB文档更新操作
5.MongoDB文档查询操作(一)
6.MongoDB文档查询操作(二)
7.MongoDB文档查询操作(三)
8.MongoDB查看执行计划
9.初识MongoDB中的索引
10.MongoDB中各种类型的索引
11.MongoDB固定集合
12.MongoDB管道操作符(一)
13.MongoDB管道操作符(二)
14.MongoDB中MapReduce使用
15.MongoDB副本集搭建
16.MongoDB副本集配置
17.MongoDB副本集其他细节
18.初识MongoDB分片
19.Java操作MongoDB

一般情况下我们创建的集合是没有大小的,可以一直往里边添加文档,这种集合可以动态增长,MongoDB 中还有一种集合叫做固定集合,这种集合的大小是固定的,我可以在创建的时候设置该集合中文档的数目,假设为 100 条,当集合中的文档数目达到 100 条时,如果再向集合中插入文档,则只会保留最新的 100 个文档,之前的文档则会被删除。

一般像日志信息我们就可以使用固定集合,其他一些需要定期删除的数据也可以使用固定集合,本文我们就来看看这个固定集合的使用。

创建

固定集合的创建方式也比较简单,如下:

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

capped:true 参数表示该集合为一个固定大小集合,size 表示集合的大小,单位为 kb,max 则表示集合中文档的最大数量。我们这里相当于给了固定集合两个限制条件,只要有任意一个限制条件满足,集合都会开始将更古老的数据删除。固定集合一旦创建成功就不能再修改,想修改只能删除重来。此时我们可以尝试向集合中添加 120 条简单的数据,然后我们会发现最早的 20 条数据消失了。

除了直接创建一个固定集合外,我们也可以通过 convertToCapped 操作将一个普通集合转为一个固定集合,如下:

db.runCommand({convertToCapped:"sang_collect",size:10})

自然排序问题

自然排序就是按照文档在磁盘中的顺序来进行排列,在普通的集合中自然排序并没有多大的意义,因为文档的位置总是在变化,而固定集合中的文档是按照文档被插入的顺序保存的,自然顺序也就是文档的插入顺序,因此我们可以利用自然排序对文档从旧到新排序,如下:

db.sang_collect.find().sort({$natural:1})

也可以从新到旧排序:

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

固定集合中的其他操作和普通集合基本一致,这里就不再赘述。

好了,MongoDB 中的固定集合我们就说到这里,小伙伴们有问题欢迎留言讨论。

参考资料:

  1. 《MongoDB权威指南第2版》
赞(1)
未经允许不得转载:江南一点雨 » MongoDB固定集合
分享到: 更多 (0)
扫码关注微信公众号【江南一点雨】,回复 1024,查看松哥原创 Java 实战教程(图文+视频)。

专注 Java 一百年

关注我们国际站